Likert 中的错误:所有项目列在 R 中必须具有相同的级别数

问题描述

我的数据:

        Q5         Q6          Q7
1   Not Agree   Neutral     Not Agree
2   Not Agree   Neutral     Neutral
3   Not Agree   Agree       Agree
4   Not Agree   Agree       Neutral
5   Neutral     Not Agree   Neutral
6   Not Agree   Agree       Neutral
7   Not Agree   Neutral     Neutral
8   Neutral     Agree       Neutral
9   Agree       Neutral     Not Agree
10  Neutral     Agree       Neutral
Q567[1:3] <- lapply(Q567[1:3],factor,levels= c("Agree","Neutral","Not Agree"),ordered = TRUE)

likert(Q567) %>%
  plot(type = "bar")

我的数据是什么样的

What my data looks like

我将它们转换为带级别的因子,为什么我仍然收到错误

Error in likert(Q567) : All items (columns) must have the same number of levels

解决方法

您仅将数据帧的前三列重新编码为因子,但您将整个数据帧传递给 likertlikert 函数期望 Q567 中的变量为因子。所以我相信您在数据框中还有其他列不是,这会导致您的错误。

你应该这样做:

likert(Q567[,1:3]) %>% 
  plot(type = 'bar')
,

我遇到了同样的问题,发现我使用的集合是一个 tibble,而不是 data.frame:

data <- as.data.frame(data) 

帮我修好了。