Comment faire une jointure à gauche dans R (avec exemples)
Vous pouvez utiliser la fonction merge() pour effectuer une jointure gauche en base R :
#left join using base R merge(df1,df2, all.x=TRUE)
Vous pouvez également utiliser la fonction left_join() du package dplyr pour effectuer une jointure gauche :
#left join using dplyr
dplyr::left_join(df2, df1)
Remarque : Si vous travaillez avec des ensembles de données extrêmement volumineux, la fonction left_join() aura tendance à être plus rapide que la fonction merge() .
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('Mavs', 'Hawks', 'Spurs', 'Nets'), points=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 rebounds assists 1 Mavs 25 19 2 Hawks 32 18 3 Spurs 38 22 4 Nets 30 25
Exemple 1 : jointure à gauche en utilisant Base R
Nous pouvons utiliser la fonction merge() en base R pour effectuer une jointure gauche, en utilisant la colonne ‘team’ comme colonne sur laquelle rejoindre :
#perform left join using base R merge(df1, df2, by='team', all.x=TRUE) team points rebounds assists 1 Hawks 93 32 18 2 Mavs 99 25 19 3 Nets 104 30 25 4 Spurs 96 38 22
Exemple 2 : jointure à gauche à l’aide de dplyr
Nous pouvons utiliser la fonction left_join() du package dplyr pour effectuer une jointure gauche, en utilisant la colonne ‘team’ comme colonne sur laquelle rejoindre :
library(dplyr) #perform left join using dplyr left_join(df1, df2, by='team') team points rebounds assists 1 Mavs 99 25 19 2 Hawks 93 32 18 3 Spurs 96 38 22 4 Nets 104 30 25
Une différence que vous remarquerez entre ces deux fonctions est que la fonction merge() trie automatiquement les lignes par ordre alphabétique en fonction de la colonne que vous avez utilisée pour effectuer la jointure.
À l’inverse, la fonction left_join() conserve l’ordre d’origine des lignes du premier bloc de données.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :
Comment faire une jointure interne dans R
Comment effectuer une correspondance floue dans R
Comment ajouter une colonne au bloc de données dans R
Comment supprimer des colonnes du bloc de données dans R