R: función rbind() y fusión de datos

Si necesitas ordenar conjuntos de datos que tienen el mismo número de columnas, utilizarbind() en R para ello.

¿Para qué sirve rbind()en R?

La función rbind() de R resulta muy útil para combinar datos línea por línea. Se utiliza principalmente para añadir nueva información a un data frame existente, lo cual es útil cuando tienes datos que se actualizan regularmente y quieres integrarlos en un conjunto de datos existente. Al procesar datos en bucles o procesos iterativos, rbind() combina los resultados paso a paso.

Además, rbind() en R se utiliza a menudo para combinar data frames con la misma estructura, ya sea para un análisis más exhaustivo o para unir diferentes partes de un conjunto de datos en un conjunto de datos completo. Debes tener en cuenta que, aunque rbind() es eficiente con conjuntos de datos pequeños, para grandes conjuntos de datos se recomienda utilizar paquetes como dplyr para mejorar el rendimiento.

Así es la sintaxis de rbind() en R

Puedes especificar tantos data frames como quieras combinar en los parámetros de rbind() siempre que todos tengan el mismo número y nombres de columnas.

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

Los argumentos data.frame1, data.frame2, etc., son marcos de datos o listas de data frames que debes unir por filas.

Ejemplos de uso de rbind()en R

Para ilustrar cómo funciona rbind() en R con un ejemplo concreto, primero debes crear un data frame con dos columnas:

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

Obtendrás el siguiente resultado:

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

A continuación, define otro data frame con el mismo número de columnas:

#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
df2<-data.frame(names, status)
df2
R

Resultado:

names    status
 1  Eva       doctor
2   John     nurse
R

Ahora puedes combinar ambos data frames:

#binding rows of df1 and df2
rbind(df1,df2)
R

Obtendrás el siguiente resultado:

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

No se pueden unir data frames de diferente longitud con rbind() en R

Fíjate qué ocurre cuando intentas combinar data frames con un número diferente de columnas.

Primero, crea un nuevo data frame con dos columnas:

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

Resultado:

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

Luego, crea un data frame con una columna adicional (tres en total):

#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
age<-c("52","38")
df2<-data.frame(names, status, age)
df2
R

Resultado:

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

Al intentar unir ambos con rbind() en R recibirás el siguiente mensaje de error:

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

El error indica que no puedes unir los dos data frames con rbind() porque el número de columnas no coincide. Sin embargo, sí puedes utilizar bind_rows() del paquete dplr para juntarlos.

bind_rows() te permite combinar data frames de diferente longitud

El error anterior se soluciona fácilmente con bind_rows().

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

El resultado que obtienes es el siguiente:

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

Con bind_rows() consigues combinar los dos data frames. Los campos vacíos se marcan con <NA>. La función es, por tanto, una buena alternativa a rbind() en R cuando los data frames no tienen el mismo número de columnas.

Consejo

Si quieres saber más sobre funciones para mostrar y editar conjuntos de datos en R, te recomendamos consultar los tutoriales R plot y R paste de nuestra Digital Guide.

Hosting
El hosting como nunca lo habías visto
  • Rápido, seguro, flexible y escalable
  • Certificado SSL/DDoS incluido
  • Dominio y asesor personal incluidos
¿Le ha resultado útil este artículo?
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.
Page top