我有一个数据,如下所示:
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")