相当于
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)
也许你可以尝试下面的方法
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))))