R rbind不同大小的表,没有重复

时间:2018-05-07 14:30:36

标签: r duplicates

我一直在努力让这一整天工作,我无法理解。我有两个表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

我将如何做到这一点?

1 个答案:

答案 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