首页 > 解决方案 > R:检测重复行,并找出每个重复组的计数

问题描述

我想提取重复行之间的链接。我可以在一个数据框中找到重复的行,如

duplicated(df)

[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE
[15] FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE
[29] FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
[43] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
[57] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE

我想知道每个重复案例的数量,

我期望的是格式:

Row X --> Row Y, Row Z

即X、Y、Z重复,该组的个数为3。

标签: rduplicatesunique

解决方案


根据您拥有的列数,这可能是一个选项。不过,您需要加入所有列:

df <- data.frame(col1 = c(1, 1, 2, 3, 4, 5, 6),
       col2 = c(1, 1, 2, 3, 4, 5, 6))
df <- data.frame(idx = 1:7, df)
df <- inner_join(df, df, by = c("col1" = "col1", "col2" = "col2"))
df <- df %>% filter(idx.y > idx.x)
df[, c("idx.x", "idx.y")]

推荐阅读