代码之家  ›  专栏  ›  技术社区  ›  Collective Action

如何按组聚合并将列添加到数据帧?[副本]

  •  1
  • Collective Action  · 技术社区  · 7 年前

    使用此 data 在Rstudio中。我需要创建一个新的df,其平均值为 lwage76 分组依据 ed76 regional.dummies ; 此外,df需要包含这些组中观察值的总和。这是我到目前为止得到的:

    agglwage <- aggregate(lwage76 ~ regional.dummies + ed76, nlsdata, mean) 
     head(agglwage )
    
    #    regional.dummies ed76  lwage76
    #1                  7    1 6.214608
    #2                  6    2 5.682503
    #3                  2    3 5.746203
    

    到现在为止,一直都还不错。

    dfcount <- count(nlsdata, c("regional.dummies", "ed76"))                                                                                                                                     
    head(dfcount, n=3)
    
    #  regional.dummies ed76 freq
    #1                1    7    2
    #2                1    9    4
    #3                1   10    6
    

    我想我现在可能可以合并这两个df,但我认为必须有一个更有效的方法来做到这一点?

    1 回复  |  直到 7 年前
        1
  •  2
  •   akrun    7 年前

    我们可以使用 dplyr . 按“区域”分组后。“dummies”和“ed76”,获取行数( n() )和 mean “lwage76”

    library(dplyr)
    nlsdata %>%
          group_by(regional.dummies, ed76) %>%    
          summarise(freq = n(), lwage76 = mean(lwage76, na.rm = TRUE))