我有一个类似的数据:
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 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
P.S:我有几百万条记录。
答案 0 :(得分:2)
您可以使用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 :(得分:0)
您可以在下面尝试。
方法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)
distinct(my_data, COL_1 , COL_2)
注意:-distinct()最适合交互式使用。应该使用函数distinct_()从函数进行调用。在这种情况下,输入必须被“引用”。
distinct(my_data, "COL_1" , "COL_2")