Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggpubr:添加平均水平线&;分组配对比较?_R_Statistics_Comparison_Boxplot - Fatal编程技术网

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")