Si vous avez des ensembles de données qui ont le même nombre de colonnes et que vous souhaitez sim­ple­ment 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 con­ca­té­ner des données ligne par ligne. Une de ses prin­ci­pales ap­pli­ca­tions est l’ajout de nouvelles in­for­ma­tions à un dataframe existant. Par exemple, elle est par­ti­cu­liè­re­ment utile lorsque vous avez des données ré­gu­liè­re­ment mises à jour et que vous souhaitez les intégrer à un ensemble de données existant. Lors du trai­te­ment de données dans des boucles ou des processus itératifs, rbind() permet de fusionner pro­gres­si­ve­ment les résultats.

De plus, rbind() est souvent utilisé pour combiner des da­ta­frames ayant la même structure, que ce soit pour une analyse plus complète ou pour fusionner dif­fé­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 re­com­mandé d’utiliser des packages tels que dplyr pour des per­for­mances accrues.

Voici à quoi ressemble la syntaxe de R rbind()

Vous pouvez spécifier autant de da­ta­frames que vous le souhaitez comme pa­ra­mètres de rbind() afin de les combiner. L’important est que tous les da­ta­frames aient le même nombre de colonnes et des types de données com­pa­tibles dans ces colonnes. Pour une com­bi­nai­son sans erreurs, il est également re­com­mandé d’avoir des noms de colonnes iden­tiques.

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

Les arguments data.frame1, data.frame2 etc. re­pré­sen­tent les da­ta­frames ou les listes des da­ta­frames qui doivent être combinés ligne par ligne.

Exemples d’uti­li­sa­tion de rbind() dans R

Pour illustrer R rbind() avec un exemple concret, nous allons d’abord créer 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

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é­fi­nis­sons 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 main­te­nant combiner les deux da­ta­frames :

# 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 da­ta­frames de longueurs dif­fé­rentes avec R rbind() n’est pas possible

Dans ce qui suit, nous allons démontrer ce qui se passe lorsque nous combinons des da­ta­frames 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é­fi­nis­sons un dataframe avec une troisième colonne sup­plé­men­taire :

# 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 da­ta­frames, car leur nombre de colonnes n’est pas égal. Pour éviter cela, nous pouvons utiliser bind_rows() du package dplyr.

Combiner des da­ta­frames de longueurs dif­fé­rentes avec bind_rows()

Le problème rencontré dans l’exemple ci-dessus peut être fa­ci­le­ment 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 da­ta­frames, et les champs vides sont marqués par <NA>. Cette fonction est donc une bonne al­ter­na­tive à rbind() dans R, lorsque le nombre de colonnes des da­ta­frames n’est pas identique.

Conseil

Si vous souhaitez en savoir plus sur les fonctions de re­pré­sen­ta­tion graphique et de ma­ni­pu­la­tion de chaînes de ca­rac­tères dans R, nous vous re­com­man­dons les tutoriels sur R plot et R paste du Digital Guide.

Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus
Aller au menu principal