这可能是无法知道要搜索的正确关键字,但我正在寻找一种方法,根据两个非数字列之间的顺序撤销来删除重复项。这是我数据的一小部分:
ANIMAL1<-c("20074674_K.v1","20085105_K.v1","20085638_K.v1","20085646_K.v1")
ANIMAL2<-c("20085105_K.v1","20074674_K.v1","20074674_K.v1","20074674_K.v1")
exclusions<-c(13,13,5,10)
data<-data.frame(ANIMAL1,ANIMAL2,exclusions)
ANIMAL1 ANIMAL2 exclusions
1 20074674_K.v1 20085105_K.v1 13
2 20085105_K.v1 20074674_K.v1 13
3 20085638_K.v1 20074674_K.v1 5
4 20085646_K.v1 20074674_K.v1 10
第一行和第二行是重复比较,动物的顺序在前两列之间反转。删除哪一个并不重要,但我想删除其中一个副本...以及在我的较大数据帧中符合此逻辑的所有其余重复项。我过去常常根据这些问题中的逻辑进行子集化:Remove duplicate column pairs, sort rows based on 2 columns以及其他发布搜索的帖子&#34;根据2列删除重复项&#34;但我还没有找到任何与我的用例相近的东西。以下是我希望删除重复后数据的样子:
ANIMAL1 ANIMAL2 exclusions
1 20085105_K.v1 20074674_K.v1 13
2 20085638_K.v1 20074674_K.v1 5
3 20085646_K.v1 20074674_K.v1 10
非常感谢!
答案 0 :(得分:1)
data[duplicated(t(apply(data,1,sort))) == FALSE,]
ANIMAL1
或ANIMAL2
相同,如果它们位于不同的列中。排除也是排序的,但在这种情况下,您不必这样做。