当我有两个以上的变量时,如何按组对变量求和?

时间:2015-08-20 16:24:37

标签: r sum aggregate

我的问题与另一个用户How to sum a variable by group?的上一个问题类似,但我的数据框中有两个以上的变量。它看起来有点像这样:

A    B   C      E
1   m   1990    300
1   m   1991    10
2   m   1991    120
3   m   1992    30
3   m   1992    30
4   m   1992    10
4   m   1993    50

我想丢失变量D并为A,B和C中的每个相同值总结E,而不会丢失其他变量。我尝试了上面链接中给出的建议(聚合,通过等)但我最终只得到了两个变量。我想要这样的东西:

            <body>
            <div id="pagewidth">
             <div id="wrapper">
              <div class="window">
               <div class="message">
                text
               </div>
              </div>
              <div class="window">
               <div class="message">
                text
               </div>
              </div>
             </div>
            </div>
            </body>

提前谢谢!

(这是我的第一个问题,如果不合适/缺少某些内容,请告诉我。)

2 个答案:

答案 0 :(得分:0)

查看dplyr包。解决方案就像:

library(dplyr)
data <- your_data
data_summed<- data %>% group_by(A, B, C) %>% mutate(F = sum(E))
然后,可以使用

dplyr的filter()来仅选择最终data.frame感兴趣的列。

有关变体,请查看此cheatsheet;太棒了。

答案 1 :(得分:0)

我认为aggregate(E ~ A + B + C, data=df, FUN=sum)应该做到这一点。这将分割A,B和C列上的数据,并计算E的总和。

> aggregate(e ~ a+b+c, data=df, FUN=sum)

  a b    c   e
1 1 m 1990 300
2 1 m 1991  10
3 2 m 1991 120
4 3 m 1992  60
5 4 m 1992  10
6 4 m 1993  50