我正在使用 R 中的 likert 包来生成绘图,其中包含总体结果,然后按子组拆分结果。
当我制作没有任何分组的图时,项目从最高到最低显示。
library(likert)
data(pisaitems)
items28 <- as.data.frame(pisaitems[, substr(names(pisaitems), 1, 5) == "ST24Q"])
p <- likert(items28)
plot(p)
但是当我按子组分解结果时,这些项目按数据中的列位置排序。添加或删除 ordered = TRUE 参数不会改变这一点。
items28 <- cbind(groups = as.factor(c("A", "B", "C")), items28)
pgroups <- likert(items28[2:12], grouping = items28$groups)
plot(pgroups, ordered = TRUE)
如果我希望子组图与未分组图的顺序相同(即顶部的 ST24Q10,然后是 S524Q05 等)而不是默认的列顺序,我可以这样做吗?或者我是否需要手动重新排序 pgroups 中的列?
编辑:有趣的是,手动重新排序列似乎也不起作用?以下代码生成与上面相同的分组图。现在列已重新排序,我无法判断项目顺序是基于什么的。
items28_g <- cbind(groups = as.factor(c("A", "B", "C")), items28)
items28_g <- items28_g %>% select(1, 11, 6, 9, 8, 4, 12, 3, 2, 5, 10, 7)
pgroups <- likert(items28_g[2:12], grouping = items28_g$groups)
plot(pgroups)