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

如何在R语言数据框中批量执行两样本t检验并导出结果?

批量执行两样本t检验并输出结果表格

方法一:基础R实现(无需额外包)

无需提前拆分数据集,直接通过循环批量处理所有目标变量:

# 定义要分析的变量(排除disease列)
target_vars <- colnames(data)[-which(colnames(data) == "disease")]

# 批量执行t检验,提取t值和p值
test_results <- sapply(target_vars, function(var) {
  # 按disease分组做t检验
  t_obj <- t.test(data[[var]] ~ data$disease)
  # 返回需要的统计量
  c(t_value = unname(t_obj$statistic), p_value = t_obj$p.value)
})

# 转换为规整的数据框
result_df <- as.data.frame(t(test_results))

# 查看结果
print(result_df)

# 导出为CSV文件
write.csv(result_df, "t_test_results.csv", row.names = TRUE)

方法二:用broom包规整输出(推荐,可获取更多统计信息)

如果需要更完整的t检验结果(如自由度、置信区间),可以用broom包将检验结果转换为标准数据框:

# 首次使用时安装所需包
install.packages(c("purrr", "broom"))

library(purrr)
library(broom)

# 批量处理并整理结果
result_df <- data %>%
  select(-disease) %>%  # 排除分组变量
  map_df(
    .f = ~ tidy(t.test(.x ~ data$disease)),
    .id = "variable"  # 添加变量名列
  ) %>%
  select(variable, statistic, p.value) %>%  # 筛选需要的列
  rename(t_value = statistic, p_value = p.value)  # 重命名列

# 查看结果
print(result_df)

# 导出为CSV文件
write.csv(result_df, "t_test_results.csv", row.names = FALSE)

说明

  • 两种方法都无需手动拆分y0和y1,直接通过公式变量 ~ disease实现分组检验,效率更高
  • 最终生成的结果数据框会清晰展示每个变量的t值和p值,方便后续分析或导出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:55:31