我在表A中的R中有以下数据集
ID Balance
1 100
1 200
2 200
3 500
4 900
4 400
4 300
5 500
我有另一个表B只有唯一的ID(1,2,3,4,5)。我想按表A中的ID和总和余额进行分组,并将其放在表B中(添加新的列余额)。像这样的东西:
ID Balance
1 300
2 200
3 500
4 1600
5 500
请你帮我解决这个问题。谢谢!!
答案 0 :(得分:2)
data.table
解决方案
setkey(setDT(A), ID)
setkey(setDT(B), ID)
B <- B[A[, list(Balance = sum(Balance)), by = ID]]
基础R解决方案
B <- merge(B, aggregate(Balance ~ ID, A, sum), by = "ID")
答案 1 :(得分:1)
dplyr
解决方案:
library(dplyr)
B <- A %>%
group_by(ID) %>%
summarise(Balance=sum(Balance))
使用plyr
包可以获得相同的结果:
library(plyr)
B <- ddply(A, .(ID), summarise, Balance=sum(Balance))
警告:请勿将dplyr
和plyr
个软件包加载到一起!使用其中一种。