具有多个条件的反合并大型数据集

时间:2018-06-20 20:14:56

标签: r datatable merge

2假设我有两个数据帧:

A <- data.frame(X1=c(1,2,3,4,5), X2=c(3,3,4,4,6), X3=c(3,2,14,5,4))
B <- data.frame(X1=c(1,3,5), X2=c(3,4,6))

我想将两者合并,以便当A中的X1和X2在B中的一行中时,然后从A返回全部行(包括所有列)。我尝试了anti_join并合并,但是结果是无法按计划工作,并且合并无法处理较大的数据框。我也尝试过使用数据表程序包。 我希望将以下数据框返回或保存到新对象。

 C <- data.frame(X1=c(2,4), X2=c(3,4), X3=c(2,5))

1 个答案:

答案 0 :(得分:1)

您不只是做A%>%anti_join(B, by = c("X1", "X2"))吗?这样,您将by设置为X1和X2,并且得到了所有异常值。

> A <- data.frame(X1=c(1,2,3,4,5), X2=c(3,3,4,4,6), X3=c(3,2,14,5,4))
> B <- data.frame(X1=c(1,3,5), X2=c(3,4,6))

> A%>%inner_join(B, by = c("X1", "X2"))
  X1 X2 X3
1  1  3  3
2  3  4 14
3  5  6  4


 > A%>%anti_join(B, by = c("X1", "X2"))
      X1 X2 X3
    1  2  3  2
    2  4  4  5