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

求助:R语言likert包处理偶数类别汇总数据报错问题

解决方法:处理偶数类汇总数据的likert图表问题

报错根源是likert()函数默认假设存在中性类别,但4类李克特量表无中性项,且未明确指定高低分组规则。结合center参数(支持整数)和数据结构调整,可直接解决问题:

步骤1:确认汇总数据结构

你的df2已经符合要求:每行对应一个问卷项,列对应各李克特类别的百分比,列名为类别数值(如"1""2""3""4"),无需调整结构。

步骤2:调用likert()时指定center参数

对于4类量表,设置center=2,函数会自动将≤2的类别归为低分组,>2的类别归为高分组,刚好对应你需要的2.5分割逻辑(整数center代表分界点的左侧类别上限,等价于两类中间的分割值)。

修改后的完整可运行代码:

rm(list=ls())
data("pisaitems")

# 原始微数据运行(对比参考)
cana1 <- likert(pisaitems[2:4])
plot(cana1)

# 构造汇总数据框
ST24Q01 <- prop.table(table(pisaitems$ST24Q01))*100
ST24Q02 <- prop.table(table(pisaitems$ST24Q02))*100
ST24Q03 <- prop.table(table(pisaitems$ST24Q03))*100

df2 <- as.data.frame(t(cbind(ST24Q01,ST24Q02,ST24Q03)))
df2 <- tibble::rownames_to_column(df2, "row_names")
colnames(df2)[1] <- c("Item")

# 关键:添加center=2参数,指定高低分组分界
cana2 <- likert(summary = df2, center = 2)
plot(cana2)

自定义分组(可选)

如果不想按默认的前半后半分组,可手动合并列生成低/高分组后再调用函数:

library(dplyr)
# 示例:将类别1设为低,2-4设为高
df2_custom <- df2 %>%
  mutate(Low = `1`,
         High = `2` + `3` + `4`) %>%
  select(Item, Low, High)

cana3 <- likert(summary = df2_custom)
plot(cana3)

内容的提问来源于stack exchange,提问作者Rodrigo Alberto Salas Portugue

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:35:25