R: обнаружить дублированную строку и узнать количество каждой дублированной группы - PullRequest
0 голосов
/ 08 ноября 2018

Я хотел бы извлечь ссылку между дублированными строками. Я могу найти дублированные строки в одном фрейме данных, как

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.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Может быть, вы можете применить unique () к вашему фрейму данных и сравнить его с оригинальным фреймом данных. Пакет r "dfCompare" содержит функции для сравнения записей.

https://cran.r -project.org / веб / пакеты / dfCompare / dfCompare.pdf

0 голосов
/ 08 ноября 2018

В зависимости от количества столбцов, это может быть вариант. Вам нужно присоединиться ко всем столбцам:

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")]
...