Combine dos DataFrames en R con diferentes columnas

En este artículo, discutiremos cómo combinar dos marcos de datos con diferentes columnas en el lenguaje de programación R.

Método 1: Usar el paquete plyr

El paquete «plyr» en R se usa para trabajar con datos, incluidas sus mejoras y manipulaciones. Se puede cargar e instalar en el espacio de trabajo con el siguiente comando:

install.packages(“plyr”)

El método rbind.fill() en R es una mejora del método rbind() en R base, se usa para combinar marcos de datos con diferentes columnas. Los nombres de las columnas y el número pueden ser diferentes en los marcos de datos de entrada. Las columnas que faltan de los marcos de datos correspondientes se rellenan con NA. El marco de datos de salida contiene una columna solo si está presente en cualquiera de los marcos de datos. 

Sintaxis:

rbind.fill( df1, df2)

 El método rbind.fill() mantiene las siguientes propiedades:

  • Los marcos de datos se agregan en el orden de su especificación en la función.
  • El número total de columnas es equivalente a la suma de un número de columnas de ambos marcos de datos.
  • El número total de filas es equivalente a la suma del número de filas de ambos marcos de datos.
  • La apariencia de las columnas está en el orden de la declaración de argumentos del marco de datos durante la llamada a la función.
  • Se crean celdas vacías en las columnas que faltan.

Ejemplo:

R

# loading the required library
library("plyr")
  
# declaring first data frame
data_frame1 <- data.frame(col1 = c(2,4,6), 
                          col2 = c(4,6,8), 
                          col3 = c(8,10,12), 
                          col4 = LETTERS[1:3])
print ("First Dataframe")
print (data_frame1)
  
# declaring second data frame
data_frame2 <- data.frame(col4 = letters[1:4], 
                          col5 = TRUE)
print ("Second Dataframe")
print (data_frame2)
  
print ("Combining Dataframe")
  
# binding data frames
rbind.fill(data_frame1,data_frame2)

Producción

[1] "First Dataframe"
col1 col2 col3 col4
1    2    4    8   A
2    4    6   10   B
3    6    8   12   C
[1] "Second Dataframe"
col4 col5
1    a TRUE
2    b TRUE
3    c TRUE
4    d TRUE
[1] "Combining Dataframe"
[1] "First Dataframe"
col1 col2 col3 col4
1    2    4    8   20
2    4    6   10   16
3    6    8   12   14
[1] "Second Dataframe"
col5 col6
1    a TRUE
2    b TRUE
3    c TRUE
4    d TRUE
[1] "Combining Dataframe"
col1 col2 col3 col4 col5
1    2    4    8   A  NA
2    4    6   10   B  NA
3    6    8   12   C  NA
4   NA   NA   NA   a  TRUE
5   NA   NA   NA   b  TRUE
6   NA   NA   NA   c  TRUE
7   NA   NA   NA   d  TRUE

Método 2: Usar el paquete dplyr

El paquete «dplyr» en R se usa para trabajar con datos, incluidas sus mejoras y manipulaciones. Se puede cargar e instalar en el espacio de trabajo con el siguiente comando: 

instalar.paquetes(“dplyr”)

El método bind_rows() se usa para combinar marcos de datos con diferentes columnas. Los nombres de las columnas y el número pueden ser diferentes en los marcos de datos de entrada. Las columnas que faltan de los marcos de datos correspondientes se rellenan con NA. El marco de datos de salida contiene una columna solo si está presente en cualquiera de los marcos de datos. 

Sintaxis:

enlazar_filas(df1, df2)

 Las siguientes propiedades son mantenidas por el método bind_rows() :

  • Los marcos de datos se agregan en el orden de su especificación en la función.
  • El número total de columnas es equivalente a la suma del número de columnas de ambos marcos de datos.
  • El número total de filas es equivalente a la suma del número de filas de ambos marcos de datos.

Ejemplo:

R

# loading the required library
library("dplyr")
  
# declaring first data frame
data_frame1 <- data.frame(col1 = c(2,4,6), 
                          col2 = c(4,6,8), 
                          col3 = c(8,10,12), 
                          col4 = c(20,16,14))
print ("First Dataframe")
print (data_frame1)
  
# declaring second data frame
data_frame2 <- data.frame(col5 = letters[1:4], 
                          col6 = TRUE)
print ("Second Dataframe")
print (data_frame2)
  
print ("Combining Dataframe")
  
# binding data frames
bind_rows(data_frame1,data_frame2)

Producción

[1] "First Dataframe" 
col1 col2 col3 col4 
1    2    4    8   20 
2    4    6   10   16 
3    6    8   12   14 
[1] "Second Dataframe" 
col5 col6 
1    a TRUE 
2    b TRUE
 3    c TRUE 
4    d TRUE 
[1] "Combining Dataframe" 
col1 col2 col3 col4 col5 col6 
1    2    4    8   20 <NA>   NA 
2    4    6   10   16 <NA>   NA 
3    6    8   12   14 <NA>   NA 
4   NA   NA   NA   NA    a TRUE 
5   NA   NA   NA   NA    b TRUE 
6   NA   NA   NA   NA    c TRUE 
7   NA   NA   NA   NA    d TRUE

En caso de que el nombre de alguna columna sea el mismo en ambos marcos de datos de entrada, se encuentran las siguientes propiedades: 

  • La clase de la columna común debe ser la misma en ambos marcos de datos; de lo contrario, se producirá un error.
  • En este caso, el número total de columnas en el marco de datos de salida debe ser equivalente al total de columnas de entrada menos las columnas que se cruzan.

Ejemplo:

R

# loading the required library
library("dplyr")
  
# declaring first data frame
data_frame1 <- data.frame(col1 = c(2,4,6), 
                          col2 = c(4,6,8), 
                          col3 = c(8,10,12), 
                          col4 = LETTERS[1:3])
print ("First Dataframe")
print (data_frame1)
  
# declaring second data frame
data_frame2 <- data.frame(col4 = letters[1:4], 
                          col5 = TRUE)
print ("Second Dataframe")
print (data_frame2)
  
print ("Combining Dataframe")
  
# binding data frames
bind_rows(data_frame1,data_frame2)

Producción

[1] "First Dataframe"
col1 col2 col3 col4
1    2    4    8   A
2    4    6   10   B
3    6    8   12   C
[1] "Second Dataframe"
col4 col5
1    a TRUE
2    b TRUE
3    c TRUE
4    d TRUE
[1] "Combining Dataframe"
[1] "First Dataframe" 
col1 col2 col3 col4 
1    2    4    8   20 
2    4    6   10   16 
3    6    8   12   14 
[1] "Second Dataframe" 
col5 col6 
1    a TRUE 
2    b TRUE
 3    c TRUE 
4    d TRUE 
[1] "Combining Dataframe" 
col1 col2 col3 col4 col5 
1    2    4    8   A  NA 
2    4    6   10   B  NA 
3    6    8   12   C  NA 
4   NA   NA   NA   a  TRUE 
5   NA   NA   NA   b  TRUE 
6   NA   NA   NA   c  TRUE 
7   NA   NA   NA   d  TRUE

Publicación traducida automáticamente

Artículo escrito por yashkumar0457 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *