Comment faire une jointure externe dans R (avec exemples)
Il existe deux manières courantes d’effectuer une jointure externe dans R :
Méthode 1 : utiliser Base R
merge(df1, df2, by='column_to_join_on', all=TRUE)
Méthode 2 : utiliser dplyr
library(dplyr) full_join(df1, df2, by='column_to_join_on')
Chaque méthode renverra toutes les lignes des deux tables.
Les deux méthodes produiront le même résultat, mais la méthode dplyr aura tendance à fonctionner plus rapidement sur des ensembles de données extrêmement volumineux.
Les exemples suivants montrent comment utiliser chacune de ces fonctions en pratique avec les trames de données suivantes :
#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 A 18 2 B 22 3 C 19 4 D 14 5 E 14 6 F 11 7 G 20 8 H 28 #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 A 4 2 B 9 3 C 14 4 D 13 5 L 10 6 M 8
Exemple 1 : jointure externe utilisant Base R
Nous pouvons utiliser la fonction merge() en base R pour effectuer une jointure externe, en utilisant la colonne ‘team’ comme colonne sur laquelle rejoindre :
#perform outer join using base R df3 <- merge(df1, df2, by='team', all=TRUE) #view result df3 team points assists 1 A 18 4 2 B 22 9 3 C 19 14 4 D 14 13 5 E 14 NA 6 F 11 NA 7 G 20 NA 8 H 28 NA 9 L NA 10 10 M NA 8
Notez que toutes les lignes des deux blocs de données sont renvoyées.
Exemple 2 : jointure externe utilisant dplyr
Nous pouvons utiliser la fonction full_join() du package dplyr pour effectuer une jointure externe, en utilisant la colonne ‘team’ comme colonne sur laquelle rejoindre :
library(dplyr) #perform outer join using dplyr df3 <- full_join(df1, df2, by='team') #view result df3 team points assists 1 A 18 4 2 B 22 9 3 C 19 14 4 D 14 13 5 E 14 NA 6 F 11 NA 7 G 20 NA 8 H 28 NA 9 L NA 10 10 M NA 8
Notez que cela correspond au résultat que nous avons obtenu en utilisant la fonction merge() en base R.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :
Comment faire une jointure à gauche dans R
Comment faire une jointure à droite dans R
Comment faire une jointure interne dans R