保留重复删除的唯一值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保留重复删除的唯一值相关的知识,希望对你有一定的参考价值。
有一个重复数据框(只有一列),如下所示:
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
答案
我们可以使用distinct
包中的dplyr函数。
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
另一答案
为什么我们不简单地使用base-r中的unique
?
> unique(df)
id
1 A
4 B
7 C
另一答案
在基地R
unique( df )
id
1 A
4 B
7 C
做的工作。您可以将其分配给新的data.frame
df2 <- unique( df )
如果您希望其他列不受影响,请将调用限制为第一列:
df2 <- unique( df[ 1 ] )
以上是关于保留重复删除的唯一值的主要内容,如果未能解决你的问题,请参考以下文章