Combinar, o unir, los datos es una tarea común de preparación de datos. La función de fusión puede utilizarse para realizar las cuatro funciones estándar de unión:
- Unión interna
- Unión completa
- Unión izquierda
- Unión derecha
Comencemos por crear conjuntos de datos de muestra para llevar a cabo estas operaciones.
123456789 per_data <- data.frame(cust_id = c("ID1", "ID2", "ID3"), married = c("Yes", "No", "Yes"), Age = c(44, 23, 35)) inc_data <- data. marco(cust_id = c("ID2", "ID1", "ID3"), ingresos = c(60000, 80000, 45000)) head(per_data) head(inc_data)
{r}
Salida:
123456789101112 cust_id casado AgeID1 Si 44ID2 No 23ID3 Si 35 cust_id ingresosID2 60000ID1 80000ID3 45000
Inner Join
Los dos conjuntos de datos pueden combinarse horizontalmente utilizando la función de fusión . En nuestro caso, uniremos internamente los dos conjuntos de datos usando la variable de clave común $0027UID$0027.
La primera línea de código de abajo fusiona los dos marcos de datos, mientras que la segunda línea de abajo muestra el conjunto de datos resultante, $0027merge1$0027.
1234 merge1 = merge(per_data,inc_data,by="cust_id")head(merge1)
{r}
Salida:
1234567 | | cust_id | casado | edad ||| ingresos |||||||--------- |--------- ||| 1 | ID1 | Si | 44 | 80000 || 2 | ID2 | No | 23 | 60000 | 3 | ID3 | Si | 35 | 45000 |
Full Join
El «full join» resulta en mantener todas las observaciones en cualquiera de los conjuntos de datos. La primera línea de código de abajo crea un marco de datos $0027df3$0027, mientras que la segunda línea realiza la unión completa y guarda el objeto como marco de datos, $0027df4$0027.
El resultado creará un marco de datos en el que todas las observaciones se mantendrán en los datos resultantes. Las celdas que faltan se marcarán como $0027NA$0027.
123456 df3 = data.frame(cust_id = c("ID4", "ID1", "ID5"), approval = c("Yes", "No", "Yes")) df4 = merge(x = merge1, y = df3, by = "cust_id", all = TRUE)head(df4)
{r}
Salida:
12345678| | cust_id | casado | edad | ingresos | aprobación |||||--------- |--------- | ||||||||||| || 1 ID1 Sí, 44 80000 No, 2 ID2 No, 23 60000 NA 3 ID3 Sí, 35 45000 NA 4 ID4 NA NA NA Sí, 5 ID5 NA NA NA NA NA Sí, sí.Left Join
La función de "unión a la izquierda" añade información del marco de datos de la derecha al marco de datos de la izquierda. Vamos a realizar la unión izquierda en los marcos de datos $0027merge1$0027 y $0027df3$0027, como se muestra a continuación.
12345 ljoin = merge(x = fusionar1, y = df3, por = "cust_id", all.x = VERDADERO) head(ljoin){r}
Salida:
1234567| | cust_id | casado | edad | ingresos | aprobación ||||--------- |--------- |--------- |--------- 1 | ID1 | Si | 44 | 80000 | No || 2 | ID2 | No | 23 | 60000 | NA | 3 | ID3 | Si | 35 | 45000 | NA |La salida muestra que todos los registros del conjunto de datos de la izquierda, $0027merge1$0027, se mantienen mientras que el conjunto de datos de la derecha, $0027df3$0027, está mapeado para ello.
Right Join
La función "unión derecha" añade información del marco de datos de la izquierda al marco de datos de la derecha. Vamos a realizar la unión derecha en los marcos de datos $0027merge1$0027 y $0027df3$0027, como se muestra a continuación.
1234 rjoin = merge(x = fusionar1, y = df3, por = "cust_id", all.y = TRUE)head(rjoin){r}
Salida:
1234567| | cust_id | casado | edad | ingresos | aprobación ||| |--------- |--------- |--------- |--------- 1 | ID1 | Si | 44 | 80000 | No || 2 | ID4 | NA | NA | NA | Si || 3 | ID5 | NA | NA | NA | Si |Contenidos