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

如何在R中循环执行ANOVA和Tukey事后检验并将结果存入数据框

批量处理ANOVA与Tukey检验并汇总结果

步骤1:加载所需包

我们需要tidyverse用于数据处理,broom用于将统计模型结果转为整洁数据框:

library(tidyverse)
library(broom)

步骤2:定义分析函数

编写一个函数,输入变量名后自动完成ANOVA拟合、Tukey检验,并返回合并后的整洁结果:

analyze_var <- function(var_name) {
  # 构建变量与处理因素的公式
  formula <- as.formula(paste(var_name, "~ Treat"))
  # 拟合ANOVA模型
  aov_fit <- aov(formula, data = df)
  
  # 提取ANOVA结果,添加变量和检验类型标识
  anova_result <- tidy(aov_fit) %>%
    mutate(variable = var_name, test_type = "ANOVA")
  
  # 提取TukeyHSD结果,添加标识列
  tukey_result <- tidy(TukeyHSD(aov_fit)) %>%
    mutate(variable = var_name, test_type = "TukeyHSD")
  
  # 合并两类结果
  bind_rows(anova_result, tukey_result)
}

步骤3:批量执行并汇总结果

指定要分析的变量列表,用map_dfr批量处理并自动合并为单个数据框:

# 定义要分析的变量
target_vars <- c("A", "B", "C", "D", "E", "F", "G", "H")

# 批量处理得到最终汇总结果
final_summary <- map_dfr(target_vars, analyze_var)

结果说明

最终的final_summary数据框包含所有变量的ANOVA和Tukey检验结果,其中:

  • variable列标记结果对应的原变量(A-H)
  • test_type列区分是ANOVA还是TukeyHSD结果
  • 其余列保留了broom::tidy输出的统计量(如F值、p值、差异置信区间等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:45:30