0

我正在使用 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)
4

0 回答 0