基于比较两列删除 R 中的重复值



我有一个数据,如下所示:

COL_1:First_Name

COL_2:Last_Name

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(相同。因此,我只需要输出中的梅格·瑞安或瑞安·梅格的一条记录。

预期输出为

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

PS:我有几百万条记录。

您可以使用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

您可以在下面尝试。

方法1:您可以根据列值从数据框中删除重复行, 如下:

根据my_data(数据框(COL_1列删除重复项

my_data[!duplicated(my_data$COL_1), ]

方法2:也可以在数据框上应用unique((,以删除重复的行,如下所示:

unique(my_data)

方法3:

步骤1:- 可以按如下方式加载和安装"dplyr"包:

安装

install.packages("dplyr")

负荷

library("dplyr")

步骤2:- 使用"dplyr"包根据所有列删除重复的行:

distinct(my_data)

根据COL_1和COL_2删除重复的行

distinct(my_data, COL_1 , COL_2)

注意 :- distinct(( 最适合交互式使用。函数 distinct_(( 应该用于从函数调用。在这种情况下,输入必须"引用"。

distinct(my_data, "COL_1" , "COL_2")

最新更新