首页 > 解决方案 > 基于比较两列删除R中的重复值

问题描述

我有这样的数据:

COL_1:名字

COL_2:姓氏

COL_1      COL_2
Michel   Jackson
Meg      Ryan
Megan    Fox
Gerard   Butler
Simon    Baker
Ryan     Meg
Fox      Megan
Baker    Simon
Jackson  Amy
Simon    Baker
Baker    Simon
Simon    Richard
Baker    Richard
Meg      Ryan
Ryan     Meg
Meg      Meg

我想要清除比较两列的重复名称的输出,例如Meg Ryan与Ryan Meg相同。因此,我在输出中只需要Meg RyanRyan Meg的一条记录。

预期的输出是

COL_1      COL_2
Michel   Jackson
Meg      Ryan
Megan    Fox
Gerard   Butler
Simon    Baker
Jackson  Amy
Simon    Richard
Baker    Richard
Meg      Meg

PS:我有几百万条记录。

标签: sqlrdplyr

解决方案


您可以使用apply

df[!duplicated(t(apply(df,1,sort))),]
      Col1    Col2
1   Michel Jackson
2      Meg    Ryan
3    Megan     Fox
4   Gerard  Butler
5    Simon   Baker
9  Jackson     Amy
12   Simon Richard
13   Baker Richard
16     Meg     Meg

推荐阅读