R 通过两组变量求和

标签 r dplyr aggregate

我在 R 中有一个数据框,通常采用以下形式:

ID     Year     Amount  
3       2000      45  
3       2000      55  
3       2002      10  
3       2002      10  
3       2004      30  
4       2000      25  
4       2002      40  
4       2002      15  
4       2004      45  
4       2004      50

我想按 ID 计算每年的金额总和,并使用此输出获取新的数据框。

ID      Year     Amount  
3       2000      100  
3       2002       20  
3       2004       30  
4       2000       25  
4       2002       55  
4       2004       95 

这是我需要做的一个例子,实际上数据要大得多。请帮忙,谢谢!

最佳答案

使用data.table

library("data.table")

D <- fread(
"ID     Year     Amount  
3       2000      45  
3       2000      55  
3       2002      10  
3       2002      10  
3       2004      30  
4       2000      25  
4       2002      40  
4       2002      15  
4       2004      45  
4       2004      50"
)
D[, .(Amount=sum(Amount)), by=.(ID, Year)]

并使用基R:

aggregate(Amount ~ ID + Year, data=D, FUN=sum)

(@markus 评论)

关于R 通过两组变量求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52413271/

相关文章:

R 如何根据另一个变量的范围获得一个变量的平均值?

mysql - 按周分组的记录数的累计总和

r - 在 dplyr mutate 或 summary 中有效分配具有多个输出的函数

r - 如何在情节图例的线条顶部居中框?

r - group_by() 到 fill() 没有按预期工作

r - 对于每组,找到具有几列最大值的观察值

python - 将分组的聚合 nunique 列添加到 pandas 数据框

r - 更改点阵图中 strip 上的文本

r - 如何绘制堆积点直方图?

r - 根据条件汇总行