La función rbind() en R – Unión de filas facilitada

La unión o combinación de las filas es muy fácil con la función rbind() en R.

rbind() significa unión de filas. En términos más simples, se trata de unir varias filas para formar un lote único. Puede incluir la unión de dos marcos de datos, vectores y más.

Este artículo hablará sobre los usos y aplicaciones de la función rbind() en la programación de R.

Sin perder mucho tiempo, ¡vamos a entrar en el tema!


Sintaxis de la función rbind()

rbind(): La función rbind o unión de filas se utiliza para unir o combinar múltiples grupos de filas entre sí.

rbind(x,x1)

Donde:

  • X = the input data.
  • X1 = Los datos que deben unirse.

La idea de unir filas usando rbind()

La idea de unir o combinar las filas de múltiples marcos de datos es muy beneficiosa en la manipulación de datos.

El siguiente diagrama definitivamente te dará una idea de cómo funciona la función rbind().

Puedes ver cómo se unen/combinan las filas de diferentes marcos de datos mediante la función rbind().


Implementación de la función rbind() en R

Como sabes, la función rbind() en R se utiliza para unir las filas de diferentes grupos de datos.

En esta sección, vamos a construir unos marcos de datos simples y unirlos usando la función rbind().

#creando un marco de datos

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

El código anterior construirá un marco de datos simple que presenta detalles y nombres de estudiantes.

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

Bien, ahora tenemos un marco de datos de 5 filas. Vamos a crear otro marco de datos.

#creando otro marco de datos

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

Bien, ahora tenemos 2 marcos de datos con diferentes cantidades de filas (df1 y df2). Vamos a usar la función rbind() para unir los dos marcos de datos anteriores en un solo marco de datos.

Vamos a ver cómo funciona.

No vas a creer que todo el proceso de unión requerirá solo una línea de código.

#une las filas de los 2 marcos de datos de entrada

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

El marco de datos resultante será una versión unida de ambos marcos de datos, como se muestra en la salida anterior.


Uniendo dos marcos de datos de longitud desigual utilizando la función bind()

Bueno, en la sección anterior, hemos combinado los dos grupos de filas juntos.

En esta sección, vamos a combinar dos conjuntos de datos utilizando la función rbind en R.

#crea el marco de datos

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
#crea el marco de datos

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

¡Espera, qué pasó? ¿Por qué la función está arrojando un error?

Si lees las líneas del error, está indicando que el número de columnas no coincide.

Tenemos 2 columnas en ‘df1’ y 3 columnas en ‘df2’.

¡No te preocupes! tenemos la función bind_rows() que nos ayudará en estos escenarios.


La función bind_rows() para unir conjuntos de datos desiguales

bind_rows() es una función que forma parte del paquete dplyr. Primero debemos importar el paquete dplyr para ejecutar esta función.

Estamos utilizando los mismos marcos de datos presentes en la sección anterior, es decir, df1 y df2. Veamos cómo funciona.

#instalar paquetes requeridos
install.packages('dplyr')
#importar librerías
library(dplyr)
#unir las filas
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+

ahora puedes ver que la función bind_rows ha combinado estos dos conjuntos de datos desiguales en términos de columnas. Los espacios vacíos se marcarán como <NA>.


Unir dos conjuntos de datos utilizando la función rbind()

En esta sección, veremos la unión de dos conjuntos de datos completos en R.

Vamos a ver cómo funciona.

Vamos a utilizar el conjunto de datos BOD ya que solo tiene 6 filas y también puedes observar fácilmente las filas unidas.

#une dos conjuntos de datos
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

El conjunto de datos BOD tiene 6 filas. Como estamos pasando los datos dos veces, la función rbind() unirá las mismas filas como se muestra arriba.

Y también no olvides que tienes la función bind_rows() también.

#une dos conjuntos de datos diferentes

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

Estos son ejemplos que muestran claramente el funcionamiento y las aplicaciones de las funciones bind() y bind_rows.

I hope these illustrations helped you in understanding these functions.


Unión de múltiples grupos de filas en R

En esta sección, nos enfocaremos en unir múltiples (más de 2) grupos de filas utilizando la función rbind(). Veamos cómo funciona.

#une filas de 3 conjuntos de datos
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

Observa cómo los tres conjuntos de datos fueron unidos o combinados por la función bind_rows() en R. Esta es la belleza de la función bind_rows().

Estas 2 funciones tienen aplicaciones infinitas en la manipulación de datos en la programación en R.


Conclusiones

La función rbind() en R y la función bind_rows() son las funciones más útiles cuando se trata de la manipulación de datos.

Puedes unir fácilmente dos data frames con el mismo número de columnas utilizando la función rbind().

De la misma manera, si los data frames tienen un número desigual de columnas, puedes usar la función bind_rows() junto con el paquete dplyr.

Bueno, eso es todo por ahora, ¡Feliz unión!

Más información: Documentación de R

Source:
https://www.digitalocean.com/community/tutorials/rbind-function-r