R语言使用gt包生成Tukey事后检验表格时分组名称不显示问题
R语言Tukey事后检验gt表格缺失分组信息解决方案
问题原因
TukeyHSD返回的分组对比标识默认存储为结果数据框的行名,gt包默认不渲染行名内容,因此生成的表格会缺失岛屿两两对比的分组信息。
修正代码
# 执行Tukey事后检验 Tuk_anova1 <- TukeyHSD(AnovaModel.1) # 提取岛屿分组的检验结果转为数据框 TK <- as.data.frame(Tuk_anova1$Island) # 将存储分组信息的行名转为独立的表格列,base R写法 TK$岛屿对比 <- rownames(TK) # 可选tidyverse写法:TK <- tibble::rownames_to_column(TK, var = "岛屿对比") # 生成gt表格,调整分组列到最前适配阅读习惯 gt_tbl <- gt(TK) |> cols_move_to_start(columns = 岛屿对比) |> # 可选:替换列名为中文,适配国内学术使用场景 cols_label( diff = "组间差值", lwr = "95%置信区间下限", upr = "95%置信区间上限", `p adj` = "校正后P值" ) gt_tbl
可选优化:添加显著性标记
如果需要自动生成显著性标识,可在生成表格前新增如下步骤:
library(dplyr) TK <- TK |> mutate(显著性 = case_when( `p adj` < 0.001 ~ "***", `p adj` < 0.01 ~ "**", `p adj` < 0.05 ~ "*", TRUE = "ns" ))
完成后再调用gt函数即可生成带显著性标记的表格。
内容的提问来源于stack exchange,提问作者nibi
相关产品推荐
相关产品推荐

