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

求助:用循环或函数实现R中首时间点与后续时间点的Cohen's d计算

高效计算配对Cohen's d的方法

这里给你两种高效的实现方式,替代重复的手动计算:

方法1:用tidyverse(purrr)实现

适合已经在使用tidyverse工具链的场景,代码更简洁:

首先加载所需包:

library(effsize)
library(tidyverse)

执行计算:

# 定义需要对比的列索引(第2至12列)
compare_cols <- 2:12

# 遍历列并批量计算Cohen's d,自动合并为数据框
result_df <- map_dfr(compare_cols, function(col_idx) {
  cohens_d(df[[1]], df[[col_idx]], paired = TRUE) %>%
    as.data.frame() %>%
    mutate(timepoint = col_idx)
})

map_dfr会自动将每次迭代的结果行绑定成完整数据框,省去手动创建多个临时对象再合并的步骤。

方法2:基础R循环实现

如果偏好基础R语法,无需额外依赖tidyverse:

首先加载包:

library(effsize)

执行计算:

# 初始化空数据框用于存储结果
result_df <- data.frame()

# 循环遍历第2至12列
for (col_idx in 2:12) {
  # 计算当前列与第1列的配对Cohen's d
  d_result <- as.data.frame(cohens_d(df[[1]], df[[col_idx]], paired = TRUE))
  # 添加对应时间点标识
  d_result$timepoint <- col_idx
  # 将结果追加到总数据框
  result_df <- rbind(result_df, d_result)
}

两种方法最终得到的result_df都包含11行数据,每行对应第1个时间点与后续某一时间点的Cohen's d值、95%置信区间,以及对应的timepoint列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:52:14