我有两个数据框:
A:
ID Var1 Var2 Var3
1 0 3 4
2 1 5 0
3 1 6 7
B:
ID Var1 Var2 Var3
1 2 4 2
2 2 1 1
3 0 2 1
4 1 0 3
我想根据匹配的ID来添加A和B中的列以获取数据帧C,并从B保留第4行(即使它没有来自A的匹配ID):
ID Var1 Var2 Var3
1 2 7 6
2 3 6 1
3 1 8 8
4 1 0 3
答案 0 :(得分:2)
rbind
和aggregate
ID
:
aggregate(. ~ ID, data=rbind(A,B), sum)
# ID Var1 Var2 Var3
#1 1 2 7 6
#2 2 3 6 1
#3 3 1 8 8
#4 4 1 0 3
在data.table
中你也可以这样做:
library(data.table)
setDT(rbind(A,B))[, lapply(.SD, sum), by=ID]
在dplyr和sql或其他任何地方都会有类似的解决方案。绑定行,按ID分组,总和。