问题描述
我的数据:
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")
我将它们转换为带级别的因子,为什么我仍然收到错误
Error in likert(Q567) : All items (columns) must have the same number of levels
解决方法
您仅将数据帧的前三列重新编码为因子,但您将整个数据帧传递给 likert
。 likert
函数期望 Q567
中的变量为因子。所以我相信您在数据框中还有其他列不是,这会导致您的错误。
你应该这样做:
likert(Q567[,1:3]) %>%
plot(type = 'bar')
,
我遇到了同样的问题,发现我使用的集合是一个 tibble,而不是 data.frame:
data <- as.data.frame(data)
帮我修好了。