李克特在R中分组不同

时间:2014-11-21 12:20:55

标签: r grouping

我想使用Likert包,也可以按变量分组并绘制结果。问题是我想要可视化的变量有不同的级别。有办法解决这个问题吗?

一个简单的例子来说明我的问题:

library(reshape)
library(likert)

foo <- data.frame(car = rep(c("Toyota", "BMW", "Ford"), times = 10),
                  satisfaction = c(1,3,4,7,7,6,2,3,5,5,5,2,4,1,7),
                  quality = c(1,1,3,5,4,3,6,4,3,6,6,1,7,2,7),
                  loyalty = c(1,1,3,5,4,3,9,4,3,10,6,1,7,2,8) )

foo[1:4] <- lapply(foo[1:4], as.factor)

likt <- likert(foo[,c(2:4)], grouping = foo$car)
plot(likt)

错误消息:

Error in likert(foo[, c(2:4)], grouping = foo$car) : 
  All items (columns) must have the same number of levels

3 个答案:

答案 0 :(得分:3)

与第一个答案相同,但现在作为群组的功能。

foo[2:4] <- lapply(foo[2:4], factor, levels=1:10)
likt <- likert(foo[,c(2:4)], grouping = foo$car)
plot(likt)

Fig

答案 1 :(得分:2)

嗯我不能添加评论,直到我获得更多的声望点,所以我打破了“回应其他答案”的指导 - 但我不希望像我这样的其他R新手浪费我刚刚计算的时间原来问题中的那一行:

library(reshape)

打破了Ruthger提供的答案。

所以生成Ruthger的情节所需的代码就是(我使用R 3.3.1测试了这个代码,并遵循https://github.com/jbryer/likert底部的likert安装说明):

library(likert)

foo <- data.frame(car = rep(c("Toyota", "BMW", "Ford"), times = 10),
                  satisfaction = c(1,3,4,7,7,6,2,3,5,5,5,2,4,1,7),
                  quality = c(1,1,3,5,4,3,6,4,3,6,6,1,7,2,7),
                  loyalty = c(1,1,3,5,4,3,9,4,3,10,6,1,7,2,8) )

foo[2:4] <- lapply(foo[2:4], factor, levels=1:10)
likt <- likert(foo[,c(2:4)], grouping = foo$car)
plot(likt)

答案 2 :(得分:0)

您的基础水平实际上是相同的,您只需告诉您的数据框存在它们:

foo[2:4] <- lapply(foo[2:4], factor, levels=1:9)

然后你就可以了。 (但grouping argumnent的工作原理仍然是个谜 - 在这个包的帮助下,这一点并不清楚。

likt <- likert(foo[,c(2:4)])
plot(likt)

enter image description here