如何从R的t.test输出中提取均值p值生成特征统计汇总表
R语言提取t.test结果生成均值、p值汇总表实现方法
t.test()的返回结果为列表类型,可直接通过$符号提取两个核心字段:
- 样本均值:
t.test(列)$estimate - 检验p值:
t.test(列)$p.value
以下是两种可直接复用的实现方案:
方案1:Base R实现(无需额外安装包)
# 取iris数据集前4个数值列做演示,可替换为自己的数据集 df <- iris[, 1:4] # 初始化结果表 result <- data.frame( feature = colnames(df), mean = NA_real_, `p-val` = NA_real_, check.names = FALSE ) # 逐列执行t检验并提取结果 for (i in seq_along(df)) { t_res <- t.test(df[[i]]) result$mean[i] <- t_res$estimate result$`p-val`[i] <- t_res$p.value } # 输出结果 print(result) # 如需导出为csv可执行:write.csv(result, "t_test汇总表.csv", row.names = FALSE)
方案2:tidyverse风格实现(代码更简洁)
library(tidyverse) df <- iris[, 1:4] # 批量迭代计算直接生成汇总表 result <- map_dfr(colnames(df), function(col){ t_res <- t.test(df[[col]]) tibble( feature = col, mean = t_res$estimate, `p-val` = t_res$p.value ) }) # 输出结果 print(result)
小提示:如果你的t检验为双样本组间比较,只需修改t.test()内的传入参数,提取均值、p值的逻辑保持不变即可。
内容的提问来源于stack exchange,提问作者DataScienceStudent
相关产品推荐
相关产品推荐

