R ggpubr:添加平均水平线&;分组配对比较?
我最近发现了很棒的R ggpubr:添加平均水平线&;分组配对比较?,r,statistics,comparison,boxplot,R,Statistics,Comparison,Boxplot,我最近发现了很棒的ggpubr包。当我与多个组一起工作时,我喜欢将数据拆分为facet(facet.by) 我的问题由两个子问题组成,与同一个图表相关。我想 添加每组的唯一平均水平线,以及 仅按组绘制显著性比较 我的目标是显示箱线图及其配对比较显著性值。由于各组的显著性可能不同,我可以只绘制显著性组,或者指定显著性比较,并按组分别绘制 示例数据: library(ggpubr) library(ggplot2) # Create data # :::::::::::::::::::::::
ggpubr
包。当我与多个组一起工作时,我喜欢将数据拆分为facet(facet.by
)
我的问题由两个子问题组成,与同一个图表相关。我想
library(ggpubr)
library(ggplot2)
# Create data
# :::::::::::::::::::::::::::::::::::::::::::::::::::
data("ToothGrowth")
df <- ToothGrowth
# Create basic plot
p <- ggboxplot(df,
x = "dose",
y = "len",
color = "dose",
palette =c("#00AFBB", "#E7B800", "#FC4E07"),
add = "jitter",
facet.by = "supp", # define faceting
shape = "dose")
# Add horizontal line per each group???
p + geom_hline(yintercept = mean(df$len), #aggregate(len ~ supp, df, mean)$len, # mean(df$len),
linetype = 2,
group = "supp")
显著性结果取决于组。然而,我只想展示重要的比较。如何在每组中仅指定有效对?比如:
my_comp_OJ <- list( c("0.5", "1"), c("0.5", "2"))
my_comp_VC <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2"))
您必须计算每个组的总平均值,并有一个data.frame,表示平均值来自哪个组
> aggregate(len ~ supp, data = df, FUN = mean)
supp len
1 OJ 20.66333
2 VC 16.96333
在geom\u hline
中包含这一点很简单
grand.means <- aggregate(len ~ supp, data = df, FUN = mean)
ggboxplot(df,
x = "dose",
y = "len",
color = "dose",
palette = c("#00AFBB", "#E7B800", "#FC4E07"),
add = "jitter",
facet.by = "supp", # define faceting
shape = "dose") +
geom_hline(data = grand.means, aes(yintercept = len),
linetype = 2,
group = "supp")
grand.means真棒,谢谢!!我不知道我可以如此轻松地在geom_hline中定义数据源,但这绝对是有意义的!
> aggregate(len ~ supp, data = df, FUN = mean)
supp len
1 OJ 20.66333
2 VC 16.96333
grand.means <- aggregate(len ~ supp, data = df, FUN = mean)
ggboxplot(df,
x = "dose",
y = "len",
color = "dose",
palette = c("#00AFBB", "#E7B800", "#FC4E07"),
add = "jitter",
facet.by = "supp", # define faceting
shape = "dose") +
geom_hline(data = grand.means, aes(yintercept = len),
linetype = 2,
group = "supp")