6.12 Combinar bases de datos
Combinar bases de datos es una tarea recurrente en ciencia de datos. Las funciones de combinación de dplyr utilizan como materia prima data frames o tibbles. La mejor manera de explicar el uso de estas intrincadas funciones es a través de un gráfico. La Figura 6.13 muestra el detalle de las filas esperadas como resultado del uso de las funciones de combinación:

Figura 6.13: Funciones de combinación de dplyr y resultado esperado. El color indica la base de datos de origen de las filas que aparecerán en la tabla de resultados.
Veamos la aplicación de estas funciones con un ejemplo muy simple.
Ejemplo 6.23 Considera las data frame Base_A
y Base_B
:
# Crear las bases de datos
<- data.frame(ID = LETTERS[1:4],
Base_A COL1 = 1:4)
<- data.frame(ID = LETTERS[c(1,3,4,5)],
Base_B COL2 = c(T,T,F,F))
# Revisar las bases de datos
Base_A# ID COL1
# 1 A 1
# 2 B 2
# 3 C 3
# 4 D 4
Base_B# ID COL2
# 1 A TRUE
# 2 C TRUE
# 3 D FALSE
# 4 E FALSE
6.12.1 full_join()
Une las dos bases de datos por completo. Las celdas en blanco que puedan aparecer se rellenan con NA
.
full_join(Base_A, Base_B, by="ID")
# ID COL1 COL2
# 1 A 1 TRUE
# 2 B 2 NA
# 3 C 3 TRUE
# 4 D 4 FALSE
# 5 E NA FALSE
6.12.2 left_join()
Devuelve todas las filas de Base_A
y cualquier fila coincidente de Base_B
. Las filas exclusivas de Base_B
no aparecen. Las celdas en blanco que puedan aparecer se rellenan con NA
.
left_join(Base_A, Base_B, by="ID")
# ID COL1 COL2
# 1 A 1 TRUE
# 2 B 2 NA
# 3 C 3 TRUE
# 4 D 4 FALSE
6.12.3 right_join()
Devuelve todas las filas de Base_B
y cualquier fila coincidente de Base_A
. Las filas exclusivas de Base_A
no aparecen. Las celdas en blanco que puedan aparecer se rellenan con NA
.
right_join(Base_A, Base_B, by="ID")
# ID COL1 COL2
# 1 A 1 TRUE
# 2 C 3 TRUE
# 3 D 4 FALSE
# 4 E NA FALSE
6.12.4 inner_join()
Devuelve todas las filas coincidentes de Base_A
y Base_B
, y muestra las columnas de ambas bases de datos.
inner_join(Base_A, Base_B, by="ID")
# ID COL1 COL2
# 1 A 1 TRUE
# 2 C 3 TRUE
# 3 D 4 FALSE