Как найти повторяющиеся элементы с помощью dplyr
Вы можете использовать следующие методы для поиска повторяющихся элементов во фрейме данных с помощью dplyr:
Способ 1: показать все повторяющиеся строки
library (dplyr) #display all duplicate rows df %>% group_by_all() %>% filter(n()> 1 ) %>% A group()
Способ 2: показать количество дубликатов для всех повторяющихся строк.
library (dplyr)
#display duplicate count for all duplicated rows
df %>%
add_count(col1, col2, col3) %>%
filter(n> 1 ) %>%
distinct()
В этом руководстве объясняется, как использовать каждый метод на практике со следующим фреймом данных:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(10, 10, 8, 14, 15, 15, 17, 17))
#view data frame
df
team position points
1 AG 10
2 AG 10
3AF 8
4 AF 14
5 BG 15
6 BG 15
7 BF 17
8 BF 17
Пример 1. Показать все повторяющиеся строки
Следующий код показывает, как отобразить все повторяющиеся строки во фрейме данных:
library (dplyr)
#display all duplicate rows in data frame
df %>%
group_by_all() %>%
filter(n()> 1 ) %>%
A group()
# A tibble: 6 x 3
team position points
1 AG 10
2 AG 10
3 BG 15
4 BG 15
5 BF 17
6 BF 17
Результатом является фрейм данных, содержащий 6 строк, каждая из которых является дубликатом строки.
Примечание . Если вы хотите знать, какие строки имеют повторяющиеся значения только в определенных столбцах, вы можете вместо этого использовать что-то вроде group_by(team) , чтобы найти строки, которые имеют повторяющиеся значения только в столбце команды .
Пример 2. Отображение количества дубликатов для всех повторяющихся строк.
Следующий код показывает, как отобразить количество дубликатов для всех повторяющихся строк во фрейме данных:
library (dplyr)
#display duplicate count for each row
df %>%
add_count(team, position, points) %>%
filter(n> 1 ) %>%
distinct()
team position points n
1 GA 10 2
2 BG 15 2
3 BF 17 2
Столбец n отображает общее количество дубликатов для каждой строки.
Например:
- Строка со значениями A, G и 10 появляется в блоке данных 2 раза.
- Строка со значениями B, G и 15 появляется в блоке данных 2 раза.
- Строка со значениями B, F и 17 появляется в блоке данных 2 раза.
Примечание . Если вы хотите узнать, какие строки имеют повторяющиеся значения в определенных столбцах, включите в функцию add_count() только эти конкретные столбцы.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как фильтровать уникальные значения с помощью dplyr
Как фильтровать по нескольким условиям с помощью dplyr
Как подсчитать количество вхождений в столбцах в R