Joindre à gauche dans dplyr avec différents noms de colonnes



Vous pouvez utiliser la syntaxe de base suivante dans dplyr pour effectuer une jointure gauche sur deux blocs de données lorsque les colonnes que vous joignez ont des noms différents dans chaque bloc de données :

library(dplyr)

final_df <- left_join(df_A, df_B, by = c('team' = 'team_name'))

Cet exemple particulier effectuera une jointure gauche sur les trames de données appelées df_A et df_B , en joignant la colonne de df_A appelée team et la colonne de df_B appelée team_name .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : effectuer une jointure à gauche avec différents noms de colonnes dans dplyr

Supposons que nous ayons les deux trames de données suivantes dans R :

#create first data frame
df_A <- data.frame(team=c('A', 'B', 'C', 'D', 'E'),
                   points=c(22, 25, 19, 14, 38))

df_A

  team points
1    A     22
2    B     25
3    C     19
4    D     14
5    E     38

#create second data frame
df_B <- data.frame(team=c('A', 'C', 'D', 'F', 'G'),
                   rebounds=c(14, 8, 8, 6, 9))

df_B

  team_name rebounds
1         A       14
2         C        8
3         D        8
4         F        6
5         G        9

Nous pouvons utiliser la syntaxe suivante dans dplyr pour effectuer une jointure gauche basée sur les valeurs correspondantes dans la colonne team de df_A et la colonne team_name de df_B :

library(dplyr)

#perform left join based on different column names in df_A and df_B
final_df <- left_join(df_A, df_B, by = c('team' = 'team_name'))

#view final data frame
final_df

  team points rebounds
1    A     22       14
2    B     25       NA
3    C     19        8
4    D     14        8
5    E     38       NA

Le bloc de données résultant contient toutes les lignes de df_A et uniquement les lignes de df_B où les valeurs d’équipe correspondent aux valeurs team_name .

Notez que vous pouvez également effectuer une recherche sur plusieurs colonnes portant des noms différents en utilisant la syntaxe de base suivante :

library(dplyr)

#perform left join based on multiple different column names
final_df <- left_join(df_A, df_B, by = c('A1' = 'B1', 'A2' = 'B2', 'A3' = 'B3'))

Remarque : Vous pouvez trouver la documentation complète de la fonction left_join() dans dplyr ici .

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
Comment faire une jointure externe dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *