我一直在努力让这一整天工作,我无法理解。我有两个表x和y,我想结合。 y的前两列是x的子集,但y有一个额外的列。我想在前两列没有重复的情况下将两者结合起来。
X:
A B
------
1 2
3 4
5 6
7 8
9 10
Y:
A B C
-------------
1 2 123
3 4 456
9 10 789
我希望我的结果是:
A B C
-------------
1 2 123
3 4 456
5 6 0
7 8 0
9 10 789
我将如何做到这一点?
答案 0 :(得分:1)
您所描述的是JOIN
操作。我使用dplyr::full_join()
:
x <- data.frame('A' = c(1,3,5,7,9), 'B' = c(2,4,6,8,10))
y <- data.frame('A' = c(1,3,9), 'B' = c(2,4,10), 'C' = c(123, 456, 789))
dplyr::full_join(x,y)
# Joining, by = c("A", "B")
A B C
1 1 2 123
2 3 4 456
3 5 6 NA
4 7 8 NA
5 9 10 789
full_join
将保留两个表中的所有列,匹配所有相同的变量(或使用by =
参数选择的任何变量)。如果没有匹配的值,则返回NA
,但如果您愿意,可以将NA
替换为0
。