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

使用gtsummary处理aov()输出遇报错,求解决方案及结果美化

问题解答

1. 错误信息解读

tbl_summary()的核心功能是汇总原始数据集的描述性统计,仅接受数据框(data frame)作为输入。你传入的是aov()生成的模型对象(类为aov/lm),函数内部尝试调用ungroup()处理数据,但模型对象不支持该方法,因此抛出no applicable method for 'ungroup' applied to an object of class "c('aov', 'lm')"错误。

2. 实现发表级美观输出

gtsummary包针对模型结果提供了专门的函数,针对方差分析场景,推荐以下两种方案:

方案1:生成标准方差分析表格

使用tbl_anova()直接处理aov模型对象,输出包含自由度、F值、P值的专业格式表格,支持自定义美化:

library(tidyverse)
library(gtsummary)

# 拟合方差分析模型
aov_model <- aov(data = chickwts, formula = weight ~ feed)

# 生成发表级表格
tbl_anova(aov_model) %>%
  modify_caption("表1:不同饲料对小鸡体重影响的单因素方差分析结果") %>%
  bold_labels() %>% # 加粗变量标签
  modify_header(p.value = "**P值**") # 自定义表头

方案2:添加事后多重比较结果

如果需要展示组间两两对比的结果,结合emmeans包和tbl_emmeans()实现:

library(emmeans)

# 拟合模型并执行事后多重比较
emmeans_model <- emmeans(aov_model, pairwise ~ feed)

# 转换为美观表格
tbl_emmeans(emmeans_model) %>%
  modify_caption("表2:不同饲料组小鸡体重的事后多重比较结果") %>%
  adjust_pvalue(method = "tukey") # 指定校正方法

补充:正确使用tbl_summary()

如果需要生成不同饲料组的体重描述性统计表格(这才是tbl_summary()的适用场景),可以这样写:

chickwts %>%
  tbl_summary(by = feed, include = weight) %>%
  modify_caption("表3:不同饲料组小鸡体重的描述性统计") %>%
  add_p(test = weight ~ "aov") # 在描述表中附加方差分析P值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:55:19