dplyr 相当于重复(),显示除第一行之外的重复行

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

相当于

df[duplicated(df[,subset]),]
的 dplyr 是什么,即对于基于
subset
列的每组重复项,保留所有行 但第一个匹配项

这将显示所有重复的行,可以选择按子集:

df %>% filter(n() > 1, .by = col)

这是我能想到的最好的 SQL 风格,使用 GROUP BY(我相信 dplyr 应该保持行顺序):

# replace with group_by_all for all columns
df %>% group_by(col) %>% filter(row_number() > 1) 
r dplyr group-by duplicates
1个回答
0
投票

也许你可以尝试下面的方法

set.seed(0)
df <- data.frame(id = 1:30, matrix(sample(1:3, 90, replace = TRUE), ncol = 3))
cols <- c("X2", "X3")
df %>%
  filter(duplicated(select(., all_of(cols))))
© www.soinside.com 2019 - 2024. All rights reserved.