是否有一个函数将行的元素视为set并仅返回每个唯一集的第一个匹配项?
在下面的示例中,第1行和第3行应视为相等。函数foo
应该与col1
或col2
中的元素无关。
df <- data.frame(col1 = c('a', 'b', '1'), col2 = c('1', '2', 'a'))
foo(df)
> col1 col2
> 1 a 1
> 2 b 2
答案 0 :(得分:1)
你可以这样做..
df[!duplicated(t(apply(df,1,sort))),]
col1 col2
1 a 1
2 b 2
对每一行进行排序(以便a-1
和1-a
最终相同),然后仅选择那些不重复的df
行。