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

如何在R中为ltm包的Cronbach's alpha测试准备数据集?

R长表转宽表适配ltm包Cronbachα计算方法

前置说明

我们假设你的原始两列数据框命名为df_long,两列分别为Question(存储问题编号)、Value(存储对应得分)。

方法1:tidyverse 实现(最直观易用)

先分组生成每个问题下的观测行号,再做宽表转换即可,不会出现嵌套列表问题:

# 加载依赖包
library(tidyverse)
library(ltm)

# 长表转宽表核心代码
df_wide <- df_long %>%
  group_by(Question) %>%
  mutate(row_id = row_number()) %>%
  pivot_wider(names_from = Question, values_from = Value) %>%
  select(-row_id)

# 直接调用cronbach.alpha函数
cronbach.alpha(df_wide)

方法2:基础R实现(无需安装额外依赖)

用基础自带的reshape函数即可完成转换:

library(ltm)

# 生成分组行号
df_long$row_id <- ave(rep(1, nrow(df_long)), df_long$Question, FUN = cumsum)
# 执行长转宽操作
df_wide <- reshape(df_long, idvar = "row_id", timevar = "Question", direction = "wide")
# 清理冗余列、修正列名
df_wide <- df_wide[,-1]
colnames(df_wide) <- gsub("Value\\.", "", colnames(df_wide))

# 调用计算函数
cronbach.alpha(df_wide)

格式校验

如果需要确认转换后格式和LSAT示例一致,可以执行以下代码对比结构:

# 查看内置LSAT数据结构
str(LSAT)
# 查看转换后的数据结构
str(df_wide)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:45:01