单元格相等时删除行

时间:2017-02-17 08:09:42

标签: r duplicates subset rows

我有一张桌子:

df <- read.table(text=" 
a    b    5
a    a    2
c    a    3   
d    d    2    
a    a    1    
b    d    2   ")
colnames(df) <- c("Gen1","Gen2", "N")

我想在Gen1 = Gen2时删除行。 例如,我会得到这个例子:

result <- read.table(text=" 
a    b    5
c    a    3     
b    d    2   ")
colnames(df) <- c("Gen1","Gen2", "N")

我尝试过重复,但重复是每行,而不是列。

2 个答案:

答案 0 :(得分:1)

我们可以使用subset

subset(df, Gen1!=Gen2)

filter来自tidyverse

library(tidyverse)
df %>% 
    filter(Gen1 != Gen2)

数据

df[1:2] <- lapply(df[1:2], as.character)

答案 1 :(得分:0)

对于大型数据集,您可以使用data.table

library(data.table)
setDT(df)[Gen1!=Gen2,]