Dplyr: come utilizzare anti_join per trovare record senza corrispondenze
È possibile utilizzare la funzione anti_join() dal pacchetto dplyr in R per restituire tutte le righe in un frame di dati che non hanno valori corrispondenti in un altro frame di dati.
Questa funzione utilizza la seguente sintassi di base:
anti_join(df1, df2, by= ' col_name ')
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio 1: utilizzare anti_join() con una colonna
Supponiamo di avere i seguenti due frame di dati in R:
#create data frames df1 <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), dots=c(12, 14, 19, 24, 36)) df2 <- data. frame (team=c('A', 'B', 'C', 'F', 'G'), dots=c(12, 14, 19, 33, 17))
Possiamo usare la funzione anti_join() per restituire tutte le righe nel primo frame di dati che non hanno una squadra corrispondente nel secondo frame di dati:
library (dplyr) #perform anti join using 'team' column anti_join(df1, df2, by=' team ') team points 1 D 24 2 E 36
Possiamo vedere che ci sono esattamente due squadre del primo frame di dati che non hanno un nome di squadra corrispondente nel secondo frame di dati.
Esempio 2: utilizzare anti_join() con più colonne
Supponiamo di avere i seguenti due frame di dati in R:
#create data frames df1 <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'), position=c('G', 'G', 'F', 'G', 'F', 'C'), dots=c(12, 14, 19, 24, 36, 41)) df2 <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'), position=c('G', 'G', 'C', 'G', 'F', 'F'), dots=c(12, 14, 19, 33, 17, 22))
Possiamo usare la funzione anti_join() per restituire tutte le righe nel primo frame di dati che non hanno una squadra e una posizione corrispondenti nel secondo frame di dati:
library (dplyr) #perform anti join using 'team' and 'position' columns anti_join(df1, df2, by=c(' team ', ' position ')) team position points 1 FY 19 2 BC 41
Possiamo vedere che ci sono esattamente due record dal primo frame di dati che non hanno un nome di squadra e una posizione corrispondenti nel secondo frame di dati.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre funzioni comuni in dplyr:
Come selezionare le colonne per indice utilizzando dplyr
Come unire più frame di dati utilizzando dplyr
Come filtrare le righe contenenti una determinata stringa utilizzando dplyr