如何使用 R 同时计算多个分量表的 Cronbach's alpha?

How to compute Cronbach's alpha for multiple subscales at the same time using R?

我是使用 R 的初学者。当我尝试计算多个子量表的 Cronbach α 时,我很吃力。我是用 psych 包来做的。

这是我的数据库的一个例子: 我有 2 个不同的分量表。子量表 A 包括项目 1 到 3,子量表 B 包括项目 4 到 5。

Subscale  Student  Item1  Item2  Item3  Item4  Item5  
   A        1       1      0     1       NA    NA
   A        2       0      1     1       NA    NA
   A        3       1      1     1       NA    NA
   B        1       NA     NA    NA      1     1
   B        2       NA     NA    NA      1     0
   B        3       NA     NA    NA      0     0

同时计算每个子量表的 Cronbach's alpha。我尝试使用 psych 包。

Reliability <- group_by(df,Subscale) %>%
alpha()

但是,我收到以下错误: 具有缺失值的可能变量是 Item4 Item5 主体错误(x,分数 = FALSE): 很抱歉:相关矩阵中的缺失值 (NA) 不允许我继续。 请删除这些变量并重试。 此外: 警告信息: 1: 在 var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm = na.rm) 中: 强制引入的 NA 2:在 alpha(.) 中:Item = Subscale 没有变化并被删除

是否可以同时计算这些子量表的 Cronbach's alpha,创建一个新的数据框或一个包含结果的列表?或者我应该使用 split 函数将两个分量表分开并分别计算每个分量表的 alpha?

提前致谢!

假设 'Subscale' 是列名,alphax 应该是 data.framematrix。一个选项是 group_splitdata.framelist,然后用 map 遍历 list 并将 alpha 应用到 'Item' 列

library(dplyr)
library(purrr)
library(psych)
df %>% 
    select(-Student) %>%
    group_split(Subscale) %>%
    map(~ alpha(.[-1]))

数据

df <- structure(list(Subscale = c("A", "A", "A", "B", "B", "B"), Student = c(1L, 
2L, 3L, 1L, 2L, 3L), Item1 = c(1L, 0L, 1L, NA, NA, NA), Item2 = c(0L, 
1L, 1L, NA, NA, NA), Item3 = c(1L, 1L, 1L, NA, NA, NA), Item4 = c(NA, 
NA, NA, 1L, 1L, 0L), Item5 = c(NA, NA, NA, 1L, 0L, 0L)), class = "data.frame", 
row.names = c(NA, 
-6L))