0

因此,我使用 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 时我仍然会遇到相同的错误。

有什么提示吗?

4

1 回答 1

1

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

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

catcount = 4

应该管用。我在当前的开发人员构建中改进了 catcount 检测(请参阅 Github),如果需要此参数,它还会警告用户。

于 2015-06-10T07:06:59.723 回答