R:在每个项目的多个项目的问卷数据框上计算类内相关性(ICC)

问题描述 投票:0回答:0

我有一个基于问卷的数据框,所有参与者都回答了 2 次问卷。在此基础上,形成了一个包含所有参与者和问卷项目的数据框。

数据框如下所示,其中每一行都是不同的参与者,“_1”和“_2”代表每个项目的 Q1 和 Q2 数据:

df <- data.frame(matrix(0, nrow = 51, ncol = 41))
# Set the column names for the first column and items columns
colnames(df) <- c("ID", paste(rep(paste0("item", 1:20), each = 2), c("_1", "_2"), sep = ""))
# Fill the ID column with values 1 to 51
df$ID <- 1:51
# Fill the item columns with random 0's and 1's
set.seed(123) # Set seed for reproducibility
df[, 2:41] <- matrix(sample(c(0, 1), size = 20 * 2 * 51, replace = TRUE), ncol = 40)
# Show the resulting data frame
df

根据填写的问卷数据,我试图根据每个项目所有参与者的 2 次测量来计算每个项目的 ICC。因此,基于所有参与者的 Q1 和 Q2,我想计算每个项目的 ICC

但是,目前我只能对整个数据框而不是每个项目执行 ICC。我试过:

icc_items <- function(item, df) {
  iccc <- ICC(df[item])
  data.frame(
    model =iccc$Model,
    type = iccc$Type,
    lowerbound = iccc$"lower bound"
    upperbound = iccc$"upper bound"
    p = iccc$p.value,
    f = iccc$F.value )}
icc_col_names <- grep("^item", names(df), value = TRUE)
icc_col_names_list <- split(icc_col_names, factor(gsub("_[1|2]$", "", icc_col_names), levels = unique(gsub("_[1|2]$", "", icc_col_names))))
icc_items_list <- lapply(icc_col_names_list, \(item)
                           icc_items(item, df))
icc_items_df <- do.call(rbind, icc_items_list)
icc_items_df

上面的代码本来是用来计算不同的测试的,但是我调整了它以适应ICC,或者至少我试过了,但是它给了我一个错误。

  • 如何根据问卷的数据框计算每个项目的 ICC,并最好地获取数据框中每个项目的值
r dataframe statistics icc psych
© www.soinside.com 2019 - 2024. All rights reserved.