Come eseguire un join sinistro in r (con esempi)


Puoi utilizzare la funzione merge() per eseguire un left join nella base R:

 #left join using base R
merge(df1,df2, all. x = TRUE )

Puoi anche utilizzare la funzione left_join() dal pacchetto dplyr per eseguire un left join:

 #left join using dplyr
dplyr::left_join(df2, df1)

Nota: se stai lavorando con set di dati estremamente grandi, la funzione left_join() tenderà ad essere più veloce della funzione merge() .

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(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '),
                  dots=c(99, 93, 96, 104))

df1

   team points
1 Mavs 99
2 Hawks 93
3 Spurs 96
4 Nets 104

#define second data frame
df2 <- data. frame (team=c(' Mavs ', ' Hawks ', ' Spurs ', ' Nets '),
                  rebounds=c(25, 32, 38, 30),
                  assists=c(19, 18, 22, 25))

df2

   team rebound assists
1 Mavs 25 19
2 Hawks 32 18
3 Spurs 38 22
4 Nets 30 25

Esempio 1: unione a sinistra utilizzando Base R

Possiamo utilizzare la funzione merge() in base R per eseguire un left join, utilizzando la colonna “team” come colonna a cui unirsi:

 #perform left join using base R
merge(df1, df2, by=' team ', all. x = TRUE )

   team points rebound assists
1 Hawks 93 32 18
2 Mavs 99 25 19
3 Nets 104 30 25
4 Spurs 96 38 22

Esempio 2: join sinistro utilizzando dplyr

Possiamo usare la funzione left_join() dal pacchetto dplyr per eseguire un left join, utilizzando la colonna ‘team’ come colonna a cui unirsi:

 library (dplyr)

#perform left join using dplyr 
left_join(df1, df2, by=' team ')

   team points rebound assists
1 Mavs 99 25 19
2 Hawks 93 32 18
3 Spurs 96 38 22
4 Nets 104 30 25

Una differenza che noterai tra queste due funzioni è che la funzione merge() ordina automaticamente le righe in ordine alfabetico in base alla colonna utilizzata per eseguire l’unione.

Al contrario, la funzione left_join() preserva l’ordine originale delle righe nel primo frame di dati.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come eseguire un inner join in R
Come eseguire la corrispondenza fuzzy in R
Come aggiungere una colonna al frame di dati in R
Come rimuovere le colonne dal frame di dati in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *