如何根据条件删除R中的重复行?

Clo*_*t X 1 r dplyr data-cleaning tidyverse data-wrangling

我有以下数据:

df <- data.frame(id = c("001", "001", "001", "002", "002", "003", "003"),
                 x = c(0, 0, 0, 0, 1, 0, 1))

 id x
001 0
001 0
001 0
002 0
002 1
003 0
003 1
Run Code Online (Sandbox Code Playgroud)

数据的性质使得某些数据可能id只有行x = 0。对于x = 1给定的id,它只出现一次,并且也出现在该 的最后一行id。我想删除每个 的重复行id,但对于x = 1an id,我只想保留该行。

所需的输出:

 id x
001 0
002 1
003 1
Run Code Online (Sandbox Code Playgroud)

tidyverse优选解决方案。谢谢!

Ony*_*mbu 5

在 R 基础中,你可以使用aggregate函数:

aggregate(x ~ id, df, max)
   id x
1 001 0
2 002 1
3 003 1
Run Code Online (Sandbox Code Playgroud)