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

如何用R将TukeyHSD结果输出为PDF等格式的美观表格?

解决方案

方法1:用openxlsx导出Excel表格

openxlsx可直接将TukeyHSD结果整理为结构化数据框,写入Excel时还能设置表头样式,无需额外格式调整:

  1. 安装并加载包:
install.packages("openxlsx")
library(openxlsx)
  1. 处理结果并导出:
# 运行示例分析
fm1 <- aov(breaks ~ wool + tension, data = warpbreaks)
tukey_res <- TukeyHSD(fm1)

# 将多组对比结果合并为单个数据框,添加分组标识
tukey_df <- do.call(rbind, lapply(names(tukey_res), function(x) {
  df <- as.data.frame(tukey_res[[x]])
  df$对比分组 <- x
  df$组别配对 <- rownames(tukey_res[[x]])
  rownames(df) <- NULL
  df
}))

# 创建工作簿,写入数据并设置表头样式
wb <- createWorkbook()
addWorksheet(wb, "TukeyHSD结果")
writeData(wb, "TukeyHSD结果", tukey_df, headerStyle = createStyle(textDecoration = "bold", fgFill = "#D3D3D3"))
saveWorkbook(wb, "TukeyHSD_Results.xlsx", overwrite = TRUE)

方法2:用flextable导出PDF/Word表格

flextable生成的表格支持自定义样式,可直接导出为PDF或Word,无需LaTeX基础:

  1. 安装并加载依赖包:
install.packages(c("flextable", "officer", "magrittr"))
library(flextable)
library(officer)
library(magrittr)
  1. 生成美观表格并导出:
# 运行示例分析
fm1 <- aov(breaks ~ wool + tension, data = warpbreaks)
tukey_res <- TukeyHSD(fm1)

# 整理结果为规范数据框
tukey_df <- do.call(rbind, lapply(names(tukey_res), function(x) {
  df <- as.data.frame(tukey_res[[x]])
  df$对比分组 <- x
  df$组别配对 <- rownames(tukey_res[[x]])
  df[, c("对比分组", "组别配对", "diff", "lwr", "upr", "p adj")]
}))

# 创建带样式的表格
ft <- flextable(tukey_df) %>%
  set_header_labels(对比分组 = "对比分组", 组别配对 = "组别配对", diff = "差异值", lwr = "置信区间下限", upr = "置信区间上限", `p adj` = "校正p值") %>%
  bold(part = "header") %>%
  autofit() %>%
  theme_box()

# 导出为PDF(需安装tinytex,执行install.packages("tinytex"); tinytex::install_tinytex()完成安装)
save_as_pdf(ft, path = "TukeyHSD_Results.pdf")

# 导出为Word
save_as_docx(ft, path = "TukeyHSD_Results.docx")

方法3:用gt包导出HTML/PDF/Excel

gt专注于生成优雅的统计表格,支持多格式导出:

  1. 安装并加载包:
install.packages("gt")
library(gt)
  1. 生成表格并导出:
# 运行示例分析
fm1 <- aov(breaks ~ wool + tension, data = warpbreaks)
tukey_res <- TukeyHSD(fm1)

# 整理结果数据框
tukey_df <- do.call(rbind, lapply(names(tukey_res), function(x) {
  df <- as.data.frame(tukey_res[[x]])
  df$对比分组 <- x
  df$组别配对 <- rownames(tukey_res[[x]])
  df
}))

# 创建带格式的gt表格
gt_table <- gt(tukey_df) %>%
  tab_header(title = "TukeyHSD多重比较结果") %>%
  fmt_number(columns = c(diff, lwr, upr, `p adj`), decimals = 3) %>%
  tab_style(style = cell_text(weight = "bold"), locations = cells_column_labels())

# 导出为HTML
gtsave(gt_table, "TukeyHSD_Results.html")

# 导出为PDF(需tinytex)
gtsave(gt_table, "TukeyHSD_Results.pdf")

# 导出为Excel
gtsave(gt_table, "TukeyHSD_Results.xlsx")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:33:23