R data inframe(...,check.names = FALSE):参数意味着行数不同:5,3

时间:2015-06-09 02:04:01

标签: r sjplot

所以我正在使用de'sjPlot'包中的sjp.likert函数,制作一系列不同数据帧的图,其中列对应于跟随Likert格式的不同问题。

确切的数据框架如下:

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 个答案:

答案 0 :(得分:1)

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

如果这对您不起作用,请尝试 catcount 参数:

catcount = 4

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