我的问题与另一个用户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>
提前谢谢!
(这是我的第一个问题,如果不合适/缺少某些内容,请告诉我。)
答案 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