如何根据R中匹配的ID添加列值?

时间:2017-10-17 21:59:20

标签: r matching

我有两个数据框:

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

1 个答案:

答案 0 :(得分:2)

{p> rbindaggregate 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分组,总和。