rstudio列中每个类别的均值/平均值

问题描述

关于如何在Studio的我的专栏之一中找到每个类别的平均值,我被困了好几天。我对r还是很陌生,并使用了这个社区来帮助我弄清楚如何运行事情,因此我想出id可以提问。

到目前为止,我已经能够从大数据集中提取3列,并被告知要在一列中找到每个类别的平均值。

       Species                   Subphylum       amylase88_count
        <chr>                     <chr>                     <dbl>
      1 Abortiporus_biennis       Agaricomycotina              2.000            
      2 Acanthostigma_perpusillum Pezizomycotina               NA
      3 Acaulospora_alpina        glomeromycota                NA
      4 Acaulospora_brasiliensis  glomeromycota                1.000
      5 Acaulospora_cavernata     glomeromycota                NA
      6 Acaulospora_colliculosa   glomeromycota                NA
      7 Acaulospora_colombiana    glomeromycota                NA
      8 Acaulospora_delicata      glomeromycota                NA
      9 Acaulospora_dilatata      glomeromycota                NA
     10 Acaulospora_entreriana    glomeromycota                NA
     # … with 2,724 more rows"## heading ## "

并非所有值都是NA,但是在亚门区域,我有更多亚伦显示的亚门。我尝试使用ddply,这是我的结果

ddply(SubphyAM76count,.(Subphylum),summarize,am76c_avg=mean(alphaMannanase76_count))

                      Subphylum am76c_avg
        1        Agaricomycotina        NA
        2        Chytridiomycota        NA
        3           Cryptomycota         0
        4  Entomophthoromycotina        NA
        5          glomeromycota        NA
        6        glomeromycotina        NA
        7      Kickxellomycotina        NA
        8    Mortierellomycotina        NA
        9         Mucoromycotina        NA
        10        Pezizomycotina        NA
        11      Pucciniomycotina        NA
        12      Saccharomycotina        NA
       13      Taphrinomycotina        NA
       14    Ustilaginomycotina        NA
       15                  <NA>        NA

现在,我知道这些值不能反映我想要的内容,因为每个亚类都有很多值。我会发布整个Excel工作表,但它的规模很大。我的猜测是我必须告诉r忽略NA吗?但过去它仍然忽略了NA。任何帮助,将不胜感激。谢谢!

解决方法

使用dplyr,您可以轻松做到:

df <- df %>% 
      group_by(Subphylum) %>% 
      summarise(val = mean(amylase88_count,na.rm=TRUE))