0

我有两个数据。框架,一个包含从内部系统导出的所有事务 (fullDF),另一个包含已审查的事务 (reviewDF)。两个 DF 包含相同的格式、列标题,并且源自相同的内部系统。列由 orig_name、orig_id、orig_fi、orig_address、bene_name、bene_id、bene_fi、bene_address、金额和日期组成。

我正在尝试 anti_join 在两个 DF 中找到的重复交易,以删除已经审查过的交易;但是,anti_join 不能基于单列标准。我的目标是仅当一行中的所有列值都相似时才反加入所有重复项。

我尝试了以下方法:

anti_join(fullDF, reviewDF, by = "orig_name", "orig_id", "orig_fi", "orig_address", "bene_name", "bene_id", "bene_fi", "bene_address", "amount", "date").

尽管我指定了所有列名,但似乎 r 仍在根据条件之一删除事务;例如:如果 bene_name 是重复的,它将删除所有具有相似 bene_name 的行,即使并非所有具有所述 bene_name 的事务都已被查看。更具体地说,即使其他字段(例如日期或金额)不同,包含相似 bene_name 的行也会被删除。

有一个更好的方法吗?

谢谢大家的帮助!

4

1 回答 1

0

我们需要将by字符向量与c

 anti_join(fullDF, reviewDF, by = c("orig_name", "orig_id", "orig_fi", "orig_address", "bene_name", "bene_id", "bene_fi", "bene_address", "amount", "date"))
于 2021-05-19T17:38:34.477 回答