从 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
我在 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