保留重复删除的唯一值

时间:2017-12-29 11:35:06

标签: r dataframe duplicates

让数据框具有重复项(只有一列),如下所示:

df  <- data.frame(id = c("A","A","A","B","B","B","C","C"))

如何才能拥有一个具有重复唯一值的新df?

预期产出的例子

df  <- data.frame(id = c("A","B","C"))

我试过的是这个。它有一个级别,但我认为这不是解决方案:

df$id[duplicated(df$id)]
[1] A A B B C
Levels: A B C

3 个答案:

答案 0 :(得分:2)

我们可以使用包中的distinct函数。

library(dplyr)

df2 <- df %>% distinct()
df2
#   id
# 1  A
# 2  B
# 3  C

如果有id以外的其他列,我们可以执行以下操作,仅在id中比较重复项,并保留所有其他列。

df2 <- df %>% distinct(id, .keep_all = TRUE)
df2
#   id
# 1  A
# 2  B
# 3  C

答案 1 :(得分:2)

为什么我们不使用base-r中的unique

> unique(df)
  id
1  A
4  B
7  C

答案 2 :(得分:1)

在基地R

unique( df )
  id
1  A
4  B
7  C

完成这项工作。您可以将其分配给新的data.frame

df2 <- unique( df )

如果您希望其他列不受影响,请将调用限制为第一列:

df2 <- unique( df[ 1 ] )