如何使用 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' 是列名,alpha
的 x
应该是 data.frame
或 matrix
。一个选项是 group_split
到 data.frame
的 list
,然后用 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))
我是使用 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' 是列名,alpha
的 x
应该是 data.frame
或 matrix
。一个选项是 group_split
到 data.frame
的 list
,然后用 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))