Recherche de site Web

La fonction rbind() dans R - L'assemblage des lignes facilité


La liaison ou la combinaison des lignes est très facile avec la fonction rbind() dans R.

rbind() signifie liaison de lignes. En termes plus simples, il s'agit de la jonction de plusieurs lignes pour former un seul lot. Cela peut inclure la jonction de deux data frames, vecteurs, et plus encore.

Cet article parlera des utilisations et des applications de la fonction rbind() en programmation R.

Sans perdre beaucoup de temps, passons directement au sujet !!!

Syntaxe de la fonction rbind()

rbind() : La fonction rbind ou « row bind » est utilisée pour lier ou combiner plusieurs groupes de lignes ensemble.

rbind(x,x1)

Où :

  • X = les données d'entrée.
  • X1 = Les données doivent être liées.

L'idée de lier des lignes en utilisant rbind()

L'idée de lier ou de combiner les lignes de plusieurs cadres de données est très bénéfique dans la manipulation des données.

Le diagramme ci-dessous vous donnera certainement une idée du fonctionnement de la fonction rbind().

Vous pouvez voir comment les lignes de différents cadres de données seront liées/combinées par la fonction rbind().

Implémentation de la fonction rbind() dans R

Comme vous le savez, la fonction rbind() dans R est utilisée pour lier les lignes de différents groupes de données.

Dans cette section, essayons de construire des cadres de données simples et de les relier en utilisant la fonction rbind().

#creating a data frame 

Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)

df1

Le code ci-dessus construira un tableau de données simple présentant les détails et les noms des étudiants.

   Student_class    Student_details
1   High school            Mark
2       College            John
3   High school        Fredrick
4   High school           Floyd
5       College          George

Eh bien, maintenant nous avons un dataframe de 5 lignes. Créons un autre dataframe.

#creating a dataframe

Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)

df2
    Student_class      Student_details
1   High school           Bracy
2       College            Evin

Eh bien, maintenant nous avons 2 data frames avec un nombre de lignes différent (df1 et df2). Utilisons la fonction rbind() pour combiner les 2 data frames ci-dessus en un seul data frame.

Voyons comment ça fonctionne.

Vous ne croirez pas que tout le processus de liaison nécessitera seulement une ligne de code.

#binds rows of 2 input data frames

rbind(df1,df2)
    Student_class     Student_details
1   High school            Mark
2       College            John
3   High school        Fredrick
4   High school           Floyd
5       College          George
6   High school           Bracy
7       College            Evin

Le cadre de données résultant sera une version liée des deux cadres de données comme montré dans la sortie ci-dessus.

Lier deux DataFrames de longueur inégale en utilisant la fonction bind()

Eh bien, dans la section précédente, nous avons combiné les deux groupes de lignes ensemble.

Dans cette section, nous allons combiner deux ensembles de données ensemble en utilisant la fonction rbind dans R.

#creates the data frame

Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)

df1
   Student_class    Student_details
1   High school            Mark
2       College            John
3   High school        Fredrick
4   High school           Floyd
5       College          George
#creats the data frame

Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
   Student_class   Student_details   Student_rank
1   High school           Bracy            A
2       College            Evin           A+
rbind(df1,df2)
Error in rbind(deparse.level, ...) : 
  numbers of columns of arguments do not match

Oh attendez, que s'est-il passé ? Pourquoi la fonction génère-t-elle une erreur ?

Si vous lisez les lignes dans l'erreur, elles indiquent que le nombre de colonnes ne correspond pas.

Nous avons 2 colonnes dans 'df1' et 3 colonnes dans 'df2'.

Ne vous inquiétez pas ! nous avons la fonction bind_rows() qui nous aidera dans ces scénarios.

La fonction bind_rows() pour lier des ensembles de données inégaux

bind_rows() est une fonction qui fait partie du paquet dplyr. Nous devons d'abord importer le paquet dplyr pour exécuter cette fonction.

Nous utilisons les mêmes cadres de données présents dans la section ci-dessus, c’est-à-dire df1 et df2. Voyons comment cela fonctionne.

#install required packages
install.packages('dplyr')
#import libraries
library(dplyr)
#bind the rows
bind_rows(df1,df2)
   Student_class    Student_details   Student_rank
1   High school            Mark         <NA>
2       College            John         <NA>
3   High school        Fredrick         <NA>
4   High school           Floyd         <NA>
5       College          George         <NA>
6   High school           Bracy          A
7       College            Evin          A+

vous pouvez maintenant voir que la fonction bind_rows a combiné ces deux ensembles de données inégaux en termes de colonnes. Les espaces vides seront marqués comme .

Lier deux ensembles de données en utilisant la fonction rbind()

Dans cette section, nous allons examiner la liaison de deux ensembles de données complets dans R.

Voyons comment ça fonctionne.

Nous allons utiliser l'ensemble de données BOD car il ne comporte que 6 lignes et vous pouvez également observer facilement les lignes limites.

#binds two data sets
rbind(BOD,BOD)
  Time demand
1     1    8.3
2     2   10.3
3     3   19.0
4     4   16.0
5     5   15.6
6     7   19.8
---------------
7     1    8.3
8     2   10.3
9     3   19.0
10    4   16.0
11    5   15.6
12    7   19.8

Le jeu de données BOD a 6 lignes. Comme nous passons les données deux fois, la fonction rbind() liera les mêmes lignes comme indiqué ci-dessus.

Et n'oubliez pas non plus que vous avez la fonction bind_rows().

#binds two different datasets

bind_rows(BOD,women)
    Time  demand  height  weight
1     1    8.3     NA     NA
2     2   10.3     NA     NA
3     3   19.0     NA     NA
4     4   16.0     NA     NA
5     5   15.6     NA     NA
6     7   19.8     NA     NA
7    NA     NA     58    115
8    NA     NA     59    117
9    NA     NA     60    120
10   NA     NA     61    123
11   NA     NA     62    126
12   NA     NA     63    129
13   NA     NA     64    132
14   NA     NA     65    135
15   NA     NA     66    139
16   NA     NA     67    142
17   NA     NA     68    146
18   NA     NA     69    150
19   NA     NA     70    154
20   NA     NA     71    159
21   NA     NA     72    164

Ce sont les exemples qui montrent clairement le fonctionnement et les applications des fonctions bind() et bind_rows.

J'espère que ces illustrations vous ont aidé à comprendre ces fonctions.

Liaison de plusieurs groupes de lignes dans R

Dans cette section, nous allons nous concentrer sur la liaison de plusieurs groupes de lignes (plus de 2) en utilisant la fonction rbind(). Voyons comment cela fonctionne.

#binds rows of 3 data sets
bind_rows(BOD,women,ToothGrowth)
     Time demand height weight len supp  dose
1     1    8.3     NA     NA   NA  <NA>   NA
2     2   10.3     NA     NA   NA  <NA>   NA
3     3   19.0     NA     NA   NA  <NA>   NA
4     4   16.0     NA     NA   NA  <NA>   NA
5     5   15.6     NA     NA   NA  <NA>   NA
6     7   19.8     NA     NA   NA  <NA>   NA
7    NA     NA     58    115   NA  <NA>   NA
8    NA     NA     59    117   NA  <NA>   NA
9    NA     NA     60    120   NA  <NA>   NA
10   NA     NA     61    123   NA  <NA>   NA
11   NA     NA     62    126   NA  <NA>   NA
12   NA     NA     63    129   NA  <NA>   NA
13   NA     NA     64    132   NA  <NA>   NA
14   NA     NA     65    135   NA  <NA>   NA
15   NA     NA     66    139   NA  <NA>   NA
16   NA     NA     67    142   NA  <NA>   NA
17   NA     NA     68    146   NA  <NA>   NA
18   NA     NA     69    150   NA  <NA>   NA
19   NA     NA     70    154   NA  <NA>   NA
20   NA     NA     71    159   NA  <NA>   NA

Observez comment les trois ensembles de données ont été liés ou combinés par la fonction bind_rows() dans R. C'est la beauté de la fonction bind_rows().

Ces 2 fonctions ont des applications infinies dans la manipulation de données en programmation R.

En conclusion

La fonction rbind() dans R et la fonction bind_rows() sont les fonctions les plus utiles en matière de manipulation de données.

Vous pouvez facilement combiner deux cadres de données ayant le même nombre de colonnes en utilisant la fonction rbind().

De la même manière, si les data frames ont un nombre de colonnes inégal, vous pouvez utiliser la fonction bind_rows() avec le package dplyr.

Eh bien, c’est tout pour le moment, Bonne reliure !!!

Lire aussi : documentation R