Come eseguire un right join in r (con esempi)
Esistono due modi comuni per eseguire un join destro in R:
Metodo 1: utilizzare Base R
merge(df1, df2, by=' column_to_join_on ', all. y = TRUE )
Metodo 2: usa dplyr
library (dplyr) right_join(df1, df2, by=' column_to_join_on ')
Entrambi i metodi restituiranno tutte le righe da df2 e tutte le righe con chiavi corrispondenti da df1 .
Vale anche la pena notare che entrambi i metodi produrranno lo stesso risultato, ma il metodo dplyr tenderà a funzionare più velocemente su set di dati estremamente grandi.
I seguenti esempi mostrano come utilizzare nella pratica ciascuna di queste funzioni con i seguenti frame di dati:
#define first data frame df1 = data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'), points=c(18, 22, 19, 14, 14, 11, 20, 28)) df1 team points 1 to 18 2 B 22 3 C 19 4 D 14 5 E 14 6 F 11 7 G 20 8:28 a.m. #define second data frame df2 = data. frame (team=c('A', 'B', 'C', 'D', 'L', 'M'), assists=c(4, 9, 14, 13, 10, 8)) df2 team assists 1 to 4 2 B 9 3 C 14 4 D 13 5 L 10 6 M 8
Esempio 1: unione a destra utilizzando Base R
Possiamo usare la funzione merge() in base R per eseguire un right join, utilizzando la colonna ‘team’ come colonna a cui unirsi:
#perform right join using base R df3 <- merge(df1, df2, by=' team ', all. y = TRUE ) #view result df3 team points assists 1 to 18 4 2 B 22 9 3 C 19 14 4 D 14 13 5 L NA 10 6 M NA 8
Si noti che tutte le righe di df2 sono state incluse nel frame di dati finale, ma solo le righe di df1 che avevano un nome di squadra corrispondente sono state incluse nel frame di dati finale.
Esempio 2: join destro utilizzando dplyr
Possiamo usare la funzione right_join() dal pacchetto dplyr per eseguire un right join, utilizzando la colonna ‘team’ come colonna a cui unirsi:
library (dplyr) #perform right join using dplyr df3 <- right_join(df1, df2, by=' team ') #view result df3 team points assists 1 to 18 4 2 B 22 9 3 C 19 14 4 D 14 13 5 L NA 10 6 M NA 8
Nota che questo corrisponde al risultato che abbiamo ottenuto utilizzando la funzione merge() in base R.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:
Come eseguire un join a sinistra in R
Come aggiungere una colonna al frame di dati in R
Come rimuovere le colonne dal frame di dati in R