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

使用ggpubr的compare_means:基于p.adj设显著性水平及report函数用法

关于ggpubr::compare_means的两个技术问题解答

1. 基于p.adj设定显著性水平并添加p.signif标记

compare_means默认会计算校正后的p值(存储在p.adj列),要基于该值添加显著性标记,需在绘图时明确指定使用p.adj列判断显著性阈值,而非默认的原始p值。具体实现代码如下:

# 安装并加载包
install.packages("ggpubr")
library(ggpubr)
data("ToothGrowth")

# 执行配对Wilcox检验,按dose分组计算校正p值
df_compare <- compare_means(len ~ supp, 
                            data = ToothGrowth,
                            method = "wilcox.test", 
                            paired = TRUE,
                            group.by = "dose",
                            method.adj = "holm") # 可选指定校正方法,默认"holm"

# 绘制箱线图并基于p.adj添加显著性标记
ggboxplot(ToothGrowth, x = "supp", y = "len", facet.by = "dose") +
  stat_pvalue_manual(df_compare,
                     label = "p.signif", # 显示显著性符号
                     y.position = c(35, 35, 35), # 自定义每个分面的标记位置
                     # 设定校正p值的显著性阈值与对应符号
                     cutpoints = c(0, 0.001, 0.01, 0.05, 1),
                     symbols = c("***", "**", "*", "ns"),
                     p.adj = "p.adj") # 指定使用p.adj列判断显著性

关键说明:stat_pvalue_manual的p.adj参数指定以结果数据中的p.adj列作为显著性判断依据,cutpoints和symbols对应不同校正p值区间的标记符号。

2. 用report包处理compare_means的输出结果

compare_means返回的是数据框格式的批量检验结果,而report包对单个htest对象的支持更完善,因此可以先按分组生成独立的htest对象,再进行报告生成:

# 安装并加载report包
install.packages("report")
library(report)

# 按dose分组拆分数据集
split_data <- split(ToothGrowth, ToothGrowth$dose)

# 对每个分组执行配对Wilcox检验,得到htest对象列表
test_list <- lapply(split_data, function(df) {
  wilcox.test(len ~ supp, data = df, paired = TRUE)
})

# 为每个检验生成结构化报告
reports <- lapply(test_list, report)

# 查看某一分组的报告示例
print(reports[["0.5"]])

# 生成所有分组的汇总报告表格
report_table(test_list)

若要直接处理compare_means的输出数据框,report包也能识别其中的统计字段并生成标准化报告:

# 直接处理compare_means的结果数据框
report(df_compare)

解释:report()会提取数据框中的统计量、校正p值等信息,生成包含检验类型、统计结果的自然语言报告;report_table()则生成简洁的表格,汇总所有分组的检验结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 07:15:35