我有两个数据框:x包含两列:A& B:
A B
4 1
6 2
9 2
10 3
15 3
数据框y包含多个列,其中两个列在我的分析中很有用:
C D
6 549
15 631
4 344
10 209
请注意,数据框y中的列C包含数据框x的A列中可用的一些(但不是全部)值。
我想要做的是找到x $ A和y $ D之间匹配的行,然后将D列中的相应值添加到我的数据框x中。因此得到的x看起来像:
A B D
4 1 344
6 2 549
9 2 NA
10 3 209
15 3 631
答案 0 :(得分:3)
您可以将公共列指定为merge
,这是必须在此处完成的。
merge(x, y, by.x='A', by.y='C', all=TRUE)
A B D
1 4 1 344
2 6 2 549
3 9 2 NA
4 10 3 209
5 15 3 631
默认情况下,merge
使用列名的交集来指定两个数据帧之间的公共列。如果没有共同的列名,或者这是不正确的集,则必须使用by
或by.x
和by.y
进行指定。
答案 1 :(得分:0)
merge(x, y, by.x = "A", by.y = "C", all = TRUE)