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

如何在R中按ID分组批量计算数据框的多个ICC值?

批量按个体ID计算ICC值

问题描述

我需要在R中处理一个包含122个个体、2500+条观测的数据框,按个体ID分组计算ICC值。目前已能通过irr包对单个个体的子集计算ICC,但不想手动重复122次子集操作,希望得到包含ID和对应ICC值的结果表。

单个个体计算的示例代码:

# 提取单个个体的目标变量子集
data_edue_icc_212003 <- subset(data_edue, vp_id == 212003, 
                        select = c(stress_sad : stress_tense))

# 计算ICC
icc(data_edue_icc_212003,
    model = "twoway",
    type = "agreement",
    unit = "single")

单个体计算的输出示例:

Single Score Intraclass Correlation

Model: twoway
Type : agreement

Subjects = 19
Raters = 9
ICC(A,1) = 0.214

F-Test, H0: r0 = 0 ; H1: r0 > 0
F(18,89.3) = 4.37 , p = 1.35e-06

95%-Confidence Interval for ICC Population Values:
0.095 < ICC < 0.42

期望的最终输出格式:

Test    ICC
ID1   (icc value)
ID2   (icc value)
...

解决方案

方法1:使用tidyverse工具链(dplyr + purrr)

先加载所需包:

library(irr)
library(dplyr)
library(purrr)
library(tibble)

按ID分组批量计算并整理结果:

icc_results <- data_edue %>%
  group_by(vp_id) %>%
  group_map(~ {
    # 提取目标变量列
    subset_data <- select(.x, stress_sad:stress_tense)
    # 计算ICC
    icc_out <- icc(subset_data, model = "twoway", type = "agreement", unit = "single")
    # 返回包含ICC值的 tibble
    tibble(ICC = icc_out$value)
  }, .keep = TRUE) %>%
  bind_rows()

运行后得到的icc_results数据框包含vp_id和对应ICC值,直接匹配需求格式。

方法2:使用Base R

若不想依赖tidyverse包,可使用Base R实现:

library(irr)

# 按个体ID拆分数据框
split_data <- split(data_edue, data_edue$vp_id)

# 遍历每个子集计算ICC并提取数值
icc_values <- lapply(split_data, function(subset) {
  subset_data <- subset(subset, select = stress_sad:stress_tense)
  icc_out <- icc(subset_data, model = "twoway", type = "agreement", unit = "single")
  icc_out$value
})

# 转换为标准数据框
icc_results <- data.frame(
  Test = names(icc_values),
  ICC = unlist(icc_values),
  stringsAsFactors = FALSE
)

扩展说明

  • 两种方法均自动遍历所有个体,无需手动子集化
  • 结果中的ICC值对应输出里的ICC(A,1)数值
  • 若需提取p值、置信区间等额外信息,可修改计算函数,例如在group_map中返回:
    tibble(
      ICC = icc_out$value,
      p_value = icc_out$p.value,
      ci_lower = icc_out$lbound,
      ci_upper = icc_out$ubound
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:57:45