rbind() in R : la fonction pour combiner des données dans des dataframes

Si vous avez des ensembles de données qui ont le même nombre de colonnes et que vous souhaitez simplement les disposer les uns en dessous des autres, alors vous devriez utiliser rbind() en R.

À quoi sert la fonction rbind() dans R ?

La fonction rbind() en R est une méthode précieuse pour concaténer des données ligne par ligne. Une de ses principales applications est l’ajout de nouvelles informations à un dataframe existant. Par exemple, elle est particulièrement utile lorsque vous avez des données régulièrement mises à jour et que vous souhaitez les intégrer à un ensemble de données existant. Lors du traitement de données dans des boucles ou des processus itératifs, rbind() permet de fusionner progressivement les résultats.

De plus, rbind() est souvent utilisé pour combiner des dataframes ayant la même structure, que ce soit pour une analyse plus complète ou pour fusionner différentes parties d’un jeu de données en un ensemble de données global. Il convient de noter que bien que rbind() soit efficace pour les petits ensembles de données, pour les grands ensembles de données, il est recommandé d’utiliser des packages tels que dplyr pour des performances accrues.

Voici à quoi ressemble la syntaxe de R rbind()

Vous pouvez spécifier autant de dataframes que vous le souhaitez comme paramètres de rbind() afin de les combiner. L’important est que tous les dataframes aient le même nombre de colonnes et des types de données compatibles dans ces colonnes. Pour une combinaison sans erreurs, il est également recommandé d’avoir des noms de colonnes identiques.

rbind(data.frame1, data.frame2, ...)
R

Les arguments data.frame1, data.frame2 etc. représentent les dataframes ou les listes des dataframes qui doivent être combinés ligne par ligne.

Exemples d’utilisation de rbind() dans R

Pour illustrer R rbind() avec un exemple concret, nous allons d’abord créer un dataframe avec deux colonnes :

names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1
R

La sortie suivante correcte serait alors :

names      status
1  Deborah   nurse
2  Tom         doctor
3  Matt         nurse
4  Laura       doctor
5  Rebecca   nurse
R

Ensuite, nous définissons un autre dataframe avec le même nombre de colonnes :

# Création du dataframe 2
names<-c("Eva","John")
status<-c("doctor","nurse")
df2<-data.frame(names, status)
df2
R

Sortie :

names    status
 1  Eva         doctor
2   John        nurse
R

Nous pouvons maintenant combiner les deux dataframes :

# Combinaison des lignes de df1 et df2
rbind(df1,df2)
R

Le résultat est :

names      status
1  Deborah    nurse
2  Tom          doctor
3  Matt         nurse
4  Laura       doctor
5  Rebecca   nurse
6  Eva         doctor
7  John       nurse
R

Combiner des dataframes de longueurs différentes avec R rbind() n’est pas possible

Dans ce qui suit, nous allons démontrer ce qui se passe lorsque nous combinons des dataframes avec un nombre différent de colonnes.

Nous créons d’abord à nouveau un dataframe avec deux colonnes :

# Création du dataframe 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1
R

Sortie :

names       status
1  Deborah    nurse
2  Tom          doctor
3  Matt          nurse
4  Laura        doctor
5  Rebecca    nurse
R

Ensuite, nous définissons un dataframe avec une troisième colonne supplémentaire :

# Création du dataframe 2
names<-c("Eva","John")
status<-c("doctor","nurse")
age<-c("52","38")
df2<-data.frame(names, status, age)
df2
R

Sortie :

names    status     age
1  Eva        doctor     52
2  John       nurse     38
R

Nous utilisons R rbind() et obtenons le message d’erreur suivant :

rbind(df1,df2)
Error in rbind(deparse.level, ...) :
    numbers of columns of arguments do not match
R

L’erreur nous indique que nous ne pouvons pas utiliser rbind() pour connecter les deux dataframes, car leur nombre de colonnes n’est pas égal. Pour éviter cela, nous pouvons utiliser bind_rows() du package dplyr.

Combiner des dataframes de longueurs différentes avec bind_rows()

Le problème rencontré dans l’exemple ci-dessus peut être facilement résolu avec bind_rows().

#install dplyr
install.packages('dplyr')
#import libraries
library(dplyr)
#bind rows
bind_rows(df1,df2)
R

La sortie suivante s’affiche :

names       status      age
1  Deborah     nurse      <NA>
2  Tom           doctor     <NA>
3  Matt          nurse       <NA>
4  Laura        doctor      <NA>
5  Rebecca    nurse       <NA>
6  Eva          doctor        52
7  John        nurse         38
R

Avec bind_rows(), nous pouvons relier avec succès les dataframes, et les champs vides sont marqués par <NA>. Cette fonction est donc une bonne alternative à rbind() dans R, lorsque le nombre de colonnes des dataframes n’est pas identique.

Conseil

Si vous souhaitez en savoir plus sur les fonctions de représentation graphique et de manipulation de chaînes de caractères dans R, nous vous recommandons les tutoriels sur R plot et R paste du Digital Guide.

Hébergement Web
Hébergement Web flexible, performant et sûr
  • Certificat SSL et protection DDoS
  • Sauvegarde et restauration des données
  • Assistance 24/7 et conseiller personnel
Cet article vous a-t-il été utile ?
Page top