¿Cómo fusionar marcos de datos en R?

En este artículo, analizaremos cómo realizar uniones internas, externas, izquierdas o derechas en un marco de datos determinado en el lenguaje de programación R.

Funciones utilizadas

La función merge() se usa para fusionar o unir dos tablas. Con valores apropiados proporcionados a parámetros específicos, podemos crear la combinación deseada.

Sintaxis: merge(df1, df2, by.df1, by.df2, all.df1, all.df2, sort = TRUE)

Parámetros:

df1: un marco de datos
df2: otro marco
de datos by.df1, by.df2: los nombres de las columnas que son comunes a df1 y df2.
all, all.df1, all.df2: valores lógicos que realmente especifican el tipo de fusión que ocurre.

Unir internamente

Una unión interna, también conocida como unión natural, fusiona los dos marcos de datos en uno que contiene los elementos comunes de ambos. Para esta función merge(), simplemente se le dan los valores de dos marcos de datos en consideración y, sobre la base de una columna común, se genera un marco de datos.

Sintaxis :

fusionar (x = marco de datos 1, y = marco de datos 2)

Ejemplo

R

# create data frame 1 with id ,
# name and address 
df1=data.frame(id=c(7058,7059,7072,7075), 
               name=c("bobby","pinkey","harsha","deepika"),
               address=c("kakumanu","hyd","tenali","chebrolu"))
  
# create data frame 2 with id , 
# marks  
df2=data.frame(id=c(7058,7059,7072,7075,7062,7063), 
               marks=c(90,78,98,67,89,90))
  
# display dataframe1
print(df1)
  
# display dataframe2
print(df2)
  
print("Inner join")
  
# inner join 
print(merge(x = df1, y = df2))

Producción:

Unión exterior

Outer Join fusiona todas las columnas de ambos marcos de datos en uno para todos los elementos. Para esto, los marcos de datos en consideración junto con todos los valores TRUE asignados a los parámetros deben pasarse a la función merge().

Sintaxis :

fusionar (x = marco de datos 1, y = marco de datos 2, todo = VERDADERO)

Ejemplo:

R

# create data frame 1 with id , name and address 
df1=data.frame(id=c(7058,7059,7072,7075), 
               name=c("bobby","pinkey","harsha","deepika"),
               address=c("kakumanu","hyd","tenali","chebrolu"))
  
# create data frame 2 with id , marks  
df2=data.frame(id=c(7058,7059,7072,7075,7062,7063), 
               marks=c(90,78,98,67,89,90))
  
# display dataframe1
print(df1)
  
# display dataframe2
print(df2)
  
print("Inner join")
  
# outer join 
print(merge(x = df1, y = df2,all=TRUE))

Producción:

Nota: Devuelve NA de columnas no coincidentes

Unirse a la izquierda

Proporciona los datos que coinciden con todas las filas en el primer marco de datos con los valores correspondientes en el segundo marco de datos. Para esto, junto con los marcos de datos en consideración, todos los parámetros deben pasarse como VERDADERO después de dar la referencia de la tabla de la izquierda.

Sintaxis :

fusionar (x = marco de datos 1, y = marco de datos 2, todo.x = VERDADERO)

Ejemplo:

R

# create data frame 1 with id , name and address 
df1=data.frame(id=c(7058,7059,7072,7075), 
               name=c("bobby","pinkey","harsha","deepika"),
               address=c("kakumanu","hyd","tenali","chebrolu"))
  
# create data frame 2 with id , marks  
df2=data.frame(id=c(7058,7059,7072,7075,7062,7063), 
               marks=c(90,78,98,67,89,90))
  
# display dataframe1
print(df1)
  
# display dataframe2
print(df2)
  
print("Left join")
# Left join 
print(merge(x = df1, y = df2,all.x=TRUE))

Producción:

Unirse a la derecha

Proporciona los datos que coinciden con todas las filas en el segundo marco de datos con los valores correspondientes en el primer marco de datos. Para esta función merge(), se deben proporcionar marcos de datos junto con todos los parámetros asignados como VERDADERO. todos los parámetros deben tener una referencia al marco de datos correcto.

Sintaxis :

fusionar (x = marco de datos 1, y = marco de datos 2, all.y = VERDADERO)

Ejemplo:

R

# create data frame 1 with id , name and address 
df1=data.frame(id=c(7058,7059,7072,7075), 
               name=c("bobby","pinkey","harsha","deepika"),
               address=c("kakumanu","hyd","tenali","chebrolu"))
  
# create data frame 2 with id , marks  
df2=data.frame(id=c(7058,7059,7072,7075,7062,7063), 
               marks=c(90,78,98,67,89,90))
  
# display dataframe1
print(df1)
  
# display dataframe2
print(df2)
  
print("Right  join")
# Right  join 
print(merge(x = df1, y = df2,all.y=TRUE))

Producción:

Publicación traducida automáticamente

Artículo escrito por gottumukkalabobby 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 *