考虑以下工作示例。
person_A <- c(1,1,1,2,2,3,3,3,4,4,4,5,6)
person_B <- c(3,4,5,9,1,1,8,7,1,3,7,6,5)
df1 <- data.frame(person_A, person_B)
因此,在每一行中,我们都有person_A
和person_B
我想过滤df1
并删除person_A
和person_B
的重复组合,并且只将唯一组合作为输出。 但是,我们必须检查切换后的组合(person_A
- person_B
和person_B
- person_A
之间)
换句话说,我想删除红色阴影部分
答案 0 :(得分:1)
我们可以使用duplicated
。我们按行(apply
)使用sort
到MARGIN = 1
元素,然后转置输出,使用duplicated
查找重复元素为逻辑vector
,否定(!
),仅限unique
行
df1[!duplicated(t(apply(df1, 1, sort))),]