使用 ggboxplot 定位选定的 p 值
Positioning of selected p values using ggboxplot
我使用 mtcars 数据集作为示例 运行 下面的代码。
library(ggplot2)
library(ggpubr)
ggboxplot(mtcars, x = "cyl", y = "drat", fill = "cyl",
facet.by = "am", width = 0.5, outlier.shape = NA,
bxp.errorbar = TRUE, bxp.errorbar.width = 0.2) +
stat_compare_means(aes(label = ifelse(p < 1.e-4,
sprintf("p = %2.1e", as.numeric(..p.format..)),
sprintf("p = %5.4f", as.numeric(..p.format..)))),
method = "wilcox.test", paired = FALSE)
我在修改它以实现以下目标时遇到了问题。在每个方面,我只想添加两个 wilcox.test p 值,一个将 cyl=4
与 cyl=6
进行比较,一个将 cyl=4
与 cyl=8
进行比较。然后,我希望每个 p 值分别位于 cyl=6
和 cyl=8
框上方。
我喜欢使用ggsignif
包,但我需要将这个例子外推到9个比较,这使得ggsignif
不太适合(比较栏占用太多space) .
感谢您的任何建议。
您想将其他组与 "reference" 组进行比较,cyl=4
。如果你使用 ref.group
参数到 stat_compare_means
它应该给你你想要的:
ggboxplot(mtcars, x = "cyl", y = "drat", fill = "cyl",
facet.by = "am", width = 0.5, outlier.shape = NA,
bxp.errorbar = TRUE, bxp.errorbar.width = 0.2) +
stat_compare_means(
aes(label = ifelse(p < 1.e-4,
sprintf("p = %2.1e", as.numeric(..p.format..)),
sprintf("p = %5.4f", as.numeric(..p.format..)))),
ref.group = "4",
method = "wilcox.test", paired = FALSE
)
我使用 mtcars 数据集作为示例 运行 下面的代码。
library(ggplot2)
library(ggpubr)
ggboxplot(mtcars, x = "cyl", y = "drat", fill = "cyl",
facet.by = "am", width = 0.5, outlier.shape = NA,
bxp.errorbar = TRUE, bxp.errorbar.width = 0.2) +
stat_compare_means(aes(label = ifelse(p < 1.e-4,
sprintf("p = %2.1e", as.numeric(..p.format..)),
sprintf("p = %5.4f", as.numeric(..p.format..)))),
method = "wilcox.test", paired = FALSE)
我在修改它以实现以下目标时遇到了问题。在每个方面,我只想添加两个 wilcox.test p 值,一个将 cyl=4
与 cyl=6
进行比较,一个将 cyl=4
与 cyl=8
进行比较。然后,我希望每个 p 值分别位于 cyl=6
和 cyl=8
框上方。
我喜欢使用ggsignif
包,但我需要将这个例子外推到9个比较,这使得ggsignif
不太适合(比较栏占用太多space) .
感谢您的任何建议。
您想将其他组与 "reference" 组进行比较,cyl=4
。如果你使用 ref.group
参数到 stat_compare_means
它应该给你你想要的:
ggboxplot(mtcars, x = "cyl", y = "drat", fill = "cyl",
facet.by = "am", width = 0.5, outlier.shape = NA,
bxp.errorbar = TRUE, bxp.errorbar.width = 0.2) +
stat_compare_means(
aes(label = ifelse(p < 1.e-4,
sprintf("p = %2.1e", as.numeric(..p.format..)),
sprintf("p = %5.4f", as.numeric(..p.format..)))),
ref.group = "4",
method = "wilcox.test", paired = FALSE
)