如何按组聚合并将列添加到数据框?

时间:2017-11-20 10:15:56

标签: r aggregate

在Rstudio中使用此data。我需要创建一个新的df,其平均值lwage76ed76regional.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 个答案:

答案 0 :(得分:2)

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

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