2015-06-09 518 views
0

所以我使用de'sjPlot'包中的sjp.likert函数来创建一系列不同数据框的图表,其中的列对应于不同的问题,并遵循一种类似的格式。R Data.frame中的错误(...,check.names = FALSE):参数意味着行数不同:5,3

确切的数据帧转载如下:

col_1 <- c(2,1,1,5) 
col_2 <- c(2,1,1,2) 
col_3 <- c(2,1,1,2) 
col_4 <- c(2,1,1,2) 
col_5 <- c(2,1,1,5) 

df <- as.data.frame(cbind(col_1,col_2,col_3,col_4,col_5)) 

继“sjPlot”包的指示,我给标签的问题以及对可能的答案(值标签)。

question.labels <- c("Las personas de mi Equipo están calificadas adecuadamente para desempeñar su trabajo", 
"Mi equipo es eficiente para solucionar problemas sin perder tiempo en encontrar culpables", 
"Mi área busca formas de hacer los procesos de manera inteligente y eficiente", 
"El ambiente en mi área es generalmente bueno", 
"En mi Equipo tenemos una dinámica de trabajo que permite nuestro mejor desempeño") 

value.labels <- c("strongly agree", "agree", "disagree", "strongly disagree", 
    "neither agree or disagree") 

然后我用sjp.likert功能产生的情节:

sjp.likert(df, axisLabels.y = question.labels, legendLabels = value.labels) 

,但我得到了以下错误:

Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 5, 3 

虽然具有下列数据帧是没有问题的:

col_a <- c(2,3,1,2,2,1) 
col_b <- c(2,4,2,5,2,2) 
col_c <- c(2,3,2,2,2,2) 
col_d <- c(2,2,1,2,2,1) 
col_e <- c(3,5,1,2,2,1) 

df2 <- cbind(col_a,col_b,col_c,col_d,col_e) 

在df2中,所有可能的值都存在,从1到5,这是与df唯一的区别,其中只有1,2和5是可能的值。因此我认为这可以解释错误,即数据框中有3个可能的值,而value.labels包含5个不同的选项。但即使我从函数中取出参数legendLabels(因此实际值和所有可能的标签之间没有不一致),我仍然在尝试绘制df时遇到同样的错误。

任何提示?

回答

1

该功能需要知道项目类别的工作量。通常,这是通过检查data.frame自动完成的。

如果这不适合你,试试catcount参数:

catcount = 4 

应该工作。我在当前开发人员版本(see Github)中改进了猫的检测,如果需要此参数,它也会警告用户。

+0

谢谢丹尼尔,现在工作得很好。 – csmontt

相关问题