You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言Likert包绘制李克特量表时如何自定义题项排序

解决方案

你之前的尝试不生效,是因为likert包的绘图逻辑默认读取likert对象内results子数据框的Item列作为排序依据,仅修改外层的Item列不会影响绘图顺序。

方案1:极简实现question1到question4从上到下排列

直接调整输入数据框的列顺序,绘图时关闭自动排序即可:

# 构造测试数据(和原有代码一致)
question1<- c(1,5,3,4,1,1,1,3,4,5)
question2<- rev(c(1,5,3,4,1,1,1,3,4,5))
question3<- c(1,1,1,2,2,2,3,3,4,5)
question4<- c(5,5,5,4,4,4,3,3,2,1)
testData<-data.frame(question1,question2,question3,question4)
testData <- lapply(testData, factor, levels= c(1:5), ordered = TRUE)
testData <- as.data.frame(testData)

# 调整列顺序+关闭自动排序
testData <- testData[, c("question4", "question3", "question2", "question1")]
p <- likert(testData)
plot(p, ordered = FALSE)

方案2:支持任意自定义排序

如果需要灵活调整题项顺序,直接修改results子数据框的Item因子水平即可:

p <- likert(testData)
# 自定义从上到下的顺序:question1 > question2 > question3 > question4
# levels参数按从下到上的显示顺序填写,所以用rev()反转需求顺序即可
p$results$Item <- factor(p$results$Item, levels = rev(c("question1", "question2", "question3", "question4")))

# 示例:如果要自定义为从上到下question3 > question1 > question4 > question2,就改成:
# p$results$Item <- factor(p$results$Item, levels = rev(c("question3", "question1", "question4", "question2")))

plot(p)

内容的提问来源于stack exchange,提问作者LBes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 04:12:02