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

Aggiungi un commento

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