保留重复删除的唯一值

问题描述 投票:0回答:3

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

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
r dataframe duplicates
3个回答
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

2
投票

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

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

1
投票

在基地R

unique( df )
  id
1  A
4  B
7  C

做的工作。您可以将其分配给新的data.frame

df2 <- unique( df )

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

df2 <- unique( df[ 1 ] )
© www.soinside.com 2019 - 2024. All rights reserved.