繁体   English   中英

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

[英]How do I add column values based on matching IDs in R?

我有两个数据框:

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

rbind并按ID aggregate

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM