如何只保留唯一的行而忽略一列?

mow*_*per 1 r dplyr

如果我有这个数据:

df1 <- data.frame(name = c("apple", "apple", "apple", "orange", "orange"),
       ID = c(1, 2, 3, 4, 5),
       is_fruit = c("yes", "yes", "yes", "yes", "yes"))
Run Code Online (Sandbox Code Playgroud)

我只想保留唯一的行,但忽略该ID列,输出如下所示:

df2 <- data.frame(name = c("apple", "orange"),
       ID = c(1, 4),
       is_fruit = c("yes", "yes"))

df2
#    name ID is_fruit
#1  apple  1      yes
#2 orange  4      yes
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点,理想情况下dplyr

Psi*_*dom 5

您可以使用distinct功能;通过显式指定变量,您可以仅基于这些列保留唯一的行;还有来自?distinct

如果给定的输入组合有多行,则只会保留第一行

distinct(df1, name, is_fruit, .keep_all = T)
#    name ID is_fruit
#1  apple  1      yes
#2 orange  4      yes
Run Code Online (Sandbox Code Playgroud)