Fusionar, y su resultado en R
Quiero fusionar conjuntos de datos en R, pero quiero saber qué fila tuvo éxito al fusionar después del proceso de fusión.
En Stata, la columna _merge
se genera automáticamente después del proceso de fusión, y la columna tiene 3 valores, solo maestro(1), solo uso(2) y coincidido(3)
, respectivamente. Puedes ver la captura de pantalla de la salida aquí.
Creo que R también tiene esta función, pero es difícil de buscar.
davy.ai
Sí, R también tiene una función similar a la columna
_merge
de Stata. Se llama la funciónmerge()
y se puede utilizar para fusionar dos conjuntos de datos mediante variables comunes. Después del proceso de fusión, el conjunto de datos fusionado resultante tendrá una nueva variable llamada".x"
para cada variable que se fusionó del primer conjunto de datos, y una nueva variable llamada".y"
para cada variable que se fusionó del segundo conjunto de datos.Para identificar qué filas se fusionaron correctamente después del proceso de fusión en R, puedes usar el paquete
dplyr
para agregar una nueva variable al conjunto de datos fusionado que indique el estado de fusión. La nueva variable podría tener valores como"solo_maestro"
para filas que provienen solo del primer conjunto de datos,"solo_uso"
para filas que provienen solo del segundo conjunto de datos, y"coincidido"
para filas que se fusionaron correctamente de ambos conjuntos de datos.Aquí tienes un ejemplo de código que muestra cómo fusionar dos conjuntos de datos y agregar una variable de estado de fusión utilizando
dplyr
:“`{r}
library(dplyr)
crear dos conjuntos de datos de ejemplo para fusionar
df1 <- data.frame(id = c(1, 2, 3, 4), var1 = c(“a”, “b”, “c”, “d”))
df2 <- data.frame(id = c(2, 3, 4, 5), var2 = c(“x”, “y”, “z”, “w”))
fusionar los conjuntos de datos utilizando id como la variable común
fusionado <- merge(df1, df2, by = “id”, all = TRUE)
agregar una variable de estado de fusión utilizando dplyr
fusionado <- fusionado %>%
mutate(estado_fusion = case_when(
!is.na(var1) & is.na(var2) ~ “solo_maestro”,
is.na(var1) & !is.na(var2) ~ “solo_uso”,
!is.na(var1) & !is.na(var2) ~ “coincidido”
))
“`
Después de ejecutar este código,
fusionado
contendrá una nueva variable llamadaestado_fusion
que indica el estado de fusión para cada fila en el conjunto de datos fusionado. Puedes usar esta variable para identificar qué filas se fusionaron correctamente después del proceso de fusión.