关于 r:remove 任何有重复的行

remove any rows with duplicates

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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

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

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

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


你能试试这个方法吗:

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