Come trovare elementi duplicati usando dplyr
È possibile utilizzare i seguenti metodi per trovare elementi duplicati in un frame di dati utilizzando dplyr:
Metodo 1: mostra tutte le righe duplicate
library (dplyr) #display all duplicate rows df %>% group_by_all() %>% filter(n()> 1 ) %>% A group()
Metodo 2: mostra il numero di duplicati per tutte le righe duplicate
library (dplyr)
#display duplicate count for all duplicated rows
df %>%
add_count(col1, col2, col3) %>%
filter(n> 1 ) %>%
distinct()
Questo tutorial spiega come utilizzare ciascun metodo nella pratica con il seguente frame di dati:
#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
Esempio 1: mostra tutte le righe duplicate
Il codice seguente mostra come visualizzare tutte le righe duplicate nel frame di dati:
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
Il risultato è un frame di dati contenente 6 righe, ciascuna delle quali è una riga duplicata.
Nota : se vuoi solo sapere quali righe hanno valori duplicati in colonne specifiche, puoi utilizzare qualcosa come group_by(team) invece per trovare le righe che hanno valori duplicati solo nella colonna del team .
Esempio 2: mostra il numero di duplicati per tutte le righe duplicate
Il codice seguente mostra come visualizzare il conteggio dei duplicati per tutte le righe duplicate nel frame di dati:
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
La colonna n mostra il numero totale di duplicati per ogni riga.
Per esempio:
- La riga con i valori A, G e 10 appare 2 volte nel blocco dati.
- La riga con i valori B, G e 15 appare 2 volte nel blocco dati.
- La riga con i valori B, F e 17 appare 2 volte nel blocco dati.
Nota : se desideri solo sapere quali righe hanno valori duplicati in colonne specifiche, includi solo quelle colonne specifiche nella funzione add_count() .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in R:
Come filtrare valori univoci utilizzando dplyr
Come filtrare in base a più condizioni utilizzando dplyr
Come contare il numero di occorrenze nelle colonne in R