让数据框具有重复项(只有一列),如下所示:
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
答案 0 :(得分:2)
我们可以使用dplyr包中的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 ] )