两个向量的唯一组合,没有对重复

时间:2015-08-17 05:24:14

标签: r

我有一个问题,我需要保留唯一的行,但没有重复的对,例如如果我有一个x1 = c(1,2,3)和x2 = c(2,1,3)的表,则只保留第一行和第三行。带有(2,1)的行被抛出,因为(1,2)已经存在。有人可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

我们可以使用sort逐行apply并使用duplicated获取逻辑索引以删除重复的行。

 df1[!duplicated(t(apply(df1, 1, sort))),]
 #   x1 x2
 #1  1  2
 #2  1  3
 #3  1  1
 #4  2  4
 #6  2  2
 #7  3  4
 #8  3  2

数据

df1 <- structure(list(x1 = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 
4L), x2 = c(2L, 3L, 1L, 4L, 1L, 2L, 4L, 2L, 1L, 2L, 2L)), .Names = c("x1", 
"x2"), class = "data.frame", row.names = c(NA, -11L))