How to aggregate data in data.frame in R

前端 未结 5 1850
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-10 22:24

I have a large data.frame. The data.frame include a lot of values.

For example:

df <- data.frame(Company = c(\'A\', \'A\', \'B\', \'C\', \'A\', \'         


        
5条回答
  •  [愿得一人]
    2020-12-10 22:49

    Base R

    cbind(aggregate(.~Company, df[,-c(2, 5)], mean),
          aggregate(Education.University~Company, df, sum)[-1])
    #  Company      Age    Wages Productivity Education.University
    #1       A 27.00000 56666.67     102.6667                    2
    #2       B 28.66667 68333.33     111.6667                    3
    #3       C 29.00000 53333.33     101.6667                    1
    

    Here is the longer version that may be easier to understand

    merge(x = aggregate(x = list(Age_av = df$Age,
                                 Wages_av = df$Wages,
                                 Productivity_av = df$Productivity),
                    by = list(Company = df$Company),
                    FUN = mean),
          y = aggregate(x = list(Education.University_sum = df$Education.University),
                    by = list(Company = df$Company),
                    FUN = sum),
          by = "Company")
    #  Company   Age_av Wages_av Productivity_av Education.University_sum
    #1       A 27.00000 56666.67        102.6667                        2
    #2       B 28.66667 68333.33        111.6667                        3
    #3       C 29.00000 53333.33        101.6667                        1
    

提交回复
热议问题