删除重复的行,并保留出现在最前面的行和数据框的所有列

时间:2018-06-25 18:35:19

标签: r dataframe dplyr tidyverse

df示例:

a = c("a", "b", "b", "b", "c")
b = c(1,4,3,2,5)
df = cbind.data.frame(a,b)

如何删除仅按“ a”列搜索的重复行,并保留第一个出现的行。我想保留其他列用于相应的行。所需的输出:

a1 = c("c","b","a")
b1 = c(5,4,1)
df1 = cbind.data.frame(a1,b1)

我想在dplyr管道中使用代码。例如,

df2 = df %>% arrange(desc(b)) %>% filter(b >= 1)

谢谢

1 个答案:

答案 0 :(得分:0)

怎么样

df[!duplicated(a), ]

#   a b
# 1 a 1
# 2 b 4
# 5 c 5

要与管道一起使用,请创建一个函数

uniqueValues <- function(df, columnName){
    df[!duplicated(df[columnName]), ]
}

> df %>% arrange(desc(b)) %>% filter(b >= 1) %>% uniqueValues('a')
# a b
# 1 c 5
# 2 b 4
# 5 a 1