按子组从高到低排列李克特图中的项目,而不是按列顺序

问题描述

我在 R 中使用 likert 包来生成图,得到总体结果,然后按子组划分结果。

当我绘制没有任何分组的图时,项目从高到低显示

library(likert)
data(pisaitems)

items28 <- as.data.frame(pisaitems[,substr(names(pisaitems),1,5) == "ST24Q"])

p <- likert(items28)
plot(p)

Likert plot with items ordered from highest-rated to lowest-rated

但是当我按子组分解结果时,项目按数据中的列位置排序。添加删除ordered = TRUE 参数不会改变这一点。

items28 <- cbind(groups = as.factor(c("A","B","C")),items28)

pgroups <- likert(items28[2:12],grouping = items28$groups)

plot(pgroups,ordered = TRUE)

Likert plot broken down by subgroup,with items ordered as they appear in the data

如果我希望子组图与未分组图的顺序相同(即 ST24Q10 在顶部,然后是 S524Q05 等)而不是认的列顺序,我可以这样做吗?或者我是否需要手动重新排序 pgroups 中的列?

编辑:有趣的是,手动重新排序列似乎也不起作用?以下代码生成与上面相同的分组图。由于列已重新排序,因此我无法确定项目订单基于什么。

items28_g <- cbind(groups = as.factor(c("A",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)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)