删除任何带有重复项的行

时间:2017-06-20 04:46:00

标签: r dataframe duplicates

假设我有一个数据框(让我们称之为df),如下所示(下图)。我试图根据给定的列(df $ car)删除给定数据框中的所有重复项。

options(stringsAsFactors=F)
car <- c('car1', 'car2', 'car2', 'car3', 'car4', 'car4', 'car4', 'car5', 'car6', 'car6')
location <- c(111,345,345,123,678,678,678,432,232,232)
value <- c(1,1,1,1,2,2,2,2,4,4)
a <- c('AT','ATC','TAT','C','TT','TGGGG','GGC','CC','AA','AT')
b <- c('A', 'TAG','TAG','G','AA','AA','AA','GG','TT','TT')

df <- data.frame(car,location,value,a,b)


> df
    car    location value   a    b
 1  car1      111     1    AT    A
 2  car2      345     1   ATC  TAG
 3  car2      345     1   TAT  TAG
 4  car3      123     1     C    G
 5  car4      678     2    TT   AA
 6  car4      678     2 TGGGG   AA
 7  car4      678     2   GGC   AA
 8  car5      432     2    CC   GG
 9  car6      232     4    AA   TT
 10 car6      232     4    AT   TT

我想要的输出如下。我希望删除所有具有重复项的列,而不仅仅是唯一值。

    car    location value   a    b
 1  car1      111     1    AT    A
 4  car3      123     1     C    G
 8  car5      432     2    CC   GG

请注意:我认为这是一个与过去发布的其他问题不同的问题。大多数问题是基于给定列要求唯一行,但我要求甚至删除那些行。如果这是一个重复的帖子,我很高兴关闭这个 - 我还没找到我正在寻找的东西!谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

如果有效,你能试试吗?

  df[!(duplicated(df$car) | duplicated(df$car, fromLast = TRUE)), ]