如何在 R、ltm 包中为 Cronbach 的 alpha 测试准备数据集?
How to prepare a data set for the Cronbach's alpha test in R, ltm package?
我在 R 中有一个数据集,它看起来非常像您定型的 2 列数据框。即:
Question | Value
Q1 | 4
Q1 | 0
Q1 | 4
Q2 | 1
Q2 | 2
Q2 | 4
我需要将其输入 ltm 包中的 cronbach.alpha 函数。但要做到这一点,我需要我的数据看起来像 R 中的 LSAT 样本数据。所以像这样:
Q1 | Q2
4 | 1
0 | 2
4 | 4
我该怎么做?
一种方法是将您的数据放入宽格式,这样每个问题都将成为它自己的列。
在旋转数据之前,您可以添加行号,否则共享相同问题编号的行将不是唯一的。
请注意,此方法适用于奇数个问题(例如,10 个 Q1,但只有 8 个 Q2)。如果您使用 cronbach.alpha
函数,您会收到一个错误,因为似乎有“缺失数据”。您可以设置 na.rm = TRUE
以使用已完成的案例(如果合适的话)。
library(tidyverse)
library(ltm)
df_wide <- df %>%
group_by(Question) %>%
mutate(rn = row_number()) %>%
pivot_wider(names_from = Question, values_from = Value) %>%
dplyr::select(-rn)
df_wide
Q1 Q2
<int> <int>
1 4 1
2 0 2
3 4 4
cronbach.alpha(df_wide)
我在 R 中有一个数据集,它看起来非常像您定型的 2 列数据框。即:
Question | Value
Q1 | 4
Q1 | 0
Q1 | 4
Q2 | 1
Q2 | 2
Q2 | 4
我需要将其输入 ltm 包中的 cronbach.alpha 函数。但要做到这一点,我需要我的数据看起来像 R 中的 LSAT 样本数据。所以像这样:
Q1 | Q2
4 | 1
0 | 2
4 | 4
我该怎么做?
一种方法是将您的数据放入宽格式,这样每个问题都将成为它自己的列。
在旋转数据之前,您可以添加行号,否则共享相同问题编号的行将不是唯一的。
请注意,此方法适用于奇数个问题(例如,10 个 Q1,但只有 8 个 Q2)。如果您使用 cronbach.alpha
函数,您会收到一个错误,因为似乎有“缺失数据”。您可以设置 na.rm = TRUE
以使用已完成的案例(如果合适的话)。
library(tidyverse)
library(ltm)
df_wide <- df %>%
group_by(Question) %>%
mutate(rn = row_number()) %>%
pivot_wider(names_from = Question, values_from = Value) %>%
dplyr::select(-rn)
df_wide
Q1 Q2
<int> <int>
1 4 1
2 0 2
3 4 4
cronbach.alpha(df_wide)