Comment faire une jointure à droite dans R (avec exemples)



Il existe deux manières courantes d’effectuer une jointure à droite dans R :

Méthode 1 : utiliser Base R

merge(df1, df2, by='column_to_join_on', all.y=TRUE)

Méthode 2 : utiliser dplyr

library(dplyr)

right_join(df1, df2, by='column_to_join_on')

Les deux méthodes renverront toutes les lignes de df2 et toutes les lignes avec les clés correspondantes de df1 .

Il convient également de noter que les deux méthodes produiront le même résultat, mais que 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 à droite en utilisant Base R

Nous pouvons utiliser la fonction merge() en base R pour effectuer une jointure à droite, en utilisant la colonne ‘team’ comme colonne sur laquelle rejoindre :

#perform right join using base R
df3 <- merge(df1, df2, by='team', all.y=TRUE)

#view result
df3

  team points assists
1    A     18       4
2    B     22       9
3    C     19      14
4    D     14      13
5    L     NA      10
6    M     NA       8

Notez que toutes les lignes de df2 ont été incluses dans le bloc de données final, mais que seules les lignes de df1 qui avaient un nom d’équipe correspondant ont été incluses dans le bloc de données final.

Exemple 2 : jointure à droite à l’aide de dplyr

Nous pouvons utiliser la fonction right_join() du package dplyr pour effectuer une jointure à droite, en utilisant la colonne ‘team’ comme colonne sur laquelle rejoindre :

library(dplyr)

#perform right join using dplyr 
df3 <- right_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    L     NA      10
6    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 ajouter une colonne au bloc de données dans R
Comment supprimer des colonnes du bloc de données dans R

Ajouter un commentaire

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