从 R 中的原始数据框中删除合并的行

Remove Merged Rows from Original Dataframe in R

我在 R 中工作,我有两个数据框。我的目标是基于两列合并它们,然后从第一个数据框中删除合并的行。因此,例如,如果我从以下内容开始:

A: x y z
   1 2 3
   4 5 6

B: q x y
   7 1 2
   3 8 9

基于 (x,y) 合并并从 A 中删除匹配行后,我希望以:

A: x y z
   4 5 6

C: q x y z
   7 1 2 3

有没有办法向 A 添加 "flag" 或 "remove" 列,只要行与 B 中的行匹配,该列的计算结果为 true?除了循环 A 和 B 之外,还有什么有效的方法可以做到这一点?

dplyr 库提供了多种加入选项。 如果您使用 inner_join,您将 return 行在 A 和 B 中都匹配。

inner_join(A,B,by=c("x","y"))
x y z q
1 2 3 7

如果您使用 anti_join,您将 return 只有在 A 中匹配而不在 B 中匹配的行:

anti_join(A,B,by=c("x","y"))
x y z
4 5 6