保持第一次出现的行,而不管每个元素的列

时间:2018-06-06 17:04:04

标签: r

是否有一个函数将行的元素视为set并仅返回每个唯一集的第一个匹配项?

在下面的示例中,第1行和第3行应视为相等。函数foo应该与col1col2中的元素无关。

df <- data.frame(col1 = c('a', 'b', '1'), col2 = c('1', '2', 'a'))


foo(df)

>   col1 col2
> 1    a    1
> 2    b    2

1 个答案:

答案 0 :(得分:1)

你可以这样做..

df[!duplicated(t(apply(df,1,sort))),]

  col1 col2
1    a    1
2    b    2

对每一行进行排序(以便a-11-a最终相同),然后仅选择那些不重复的df行。