如何删除双重组合

时间:2018-03-16 11:09:08

标签: r dataset double combinations selection

我有一个像这样的数据集宝石,有位置组合

loccom     locind1     locind2     A       B       C    ...

01_01        1          1        15.2    59.2    65.1   ...

01_02        1          2        32.1    52.1    58.4   ...

01_03        1          3        15.5    25.8    89.1   ...

...

02_01        2          1        32.1    52.1    58.4   ...

03_01        2          1        15.5    25.8    89.1   ...

我想用反向代码删除这些双重组合(01_01类型都是01_02< - > 02_01类型之一)

我尝试添加两个组合方向的列

gem$loccom1 <- paste(gem$locind1, "_" , gem$locind2)

gem$loccom2 <- paste(gem$locind2, "_" , gem$locind1)

我认为使用以下代码我可以删除这些双重组合:

gemb<- gem[! (gem$loccom1==gem$loccom2),]

但是只删除01_01类型而不删除01_02&lt; - &gt; 02_01类型

有谁知道如何从我的数据集中删除01_02&lt; - &gt; 02_01类型?

1 个答案:

答案 0 :(得分:1)

我们可以split&#39; loccom&#39;按_sort,应用duplicated获取逻辑向量并删除重复的行

df1[!duplicated(lapply(strsplit(df1$loccom, "_"), sort)),]