importar - fusionar la comparación de comandos entre R y Stata
exportar datos de r a excel (2)
Siendo un usuario R, estoy aprendiendo a Stata ahora usando este recurso, y estoy desconcertado sobre el comando de merge
.
En R, no tengo que preocuparme por fusionar datos erróneamente, porque de todos modos fusiona todo. No necesito preocuparme si las columnas comunes contienen duplicados, porque el marco de datos Y
se fusionará con cada una de las filas duplicadas en el marco de datos X
(usando all=FALSE
en merge
)
Pero para Stata, necesito eliminar las filas duplicadas de X
antes de proceder a fusionarme.
¿Se supone en Stata que, para que la merge
proceda, la columna común en la tabla maestra debe ser única?
La respuesta a su pregunta es No. Trataré de explicar por qué.
El enlace que menciona abarca solo un tipo de combinación que es posible con Stata, es decir, la fusión de uno a muchos.
merge 1:m varlist using filename
Otros tipos de fusión son posibles:
Combinación uno a uno en variables clave especificadas
merge 1:1 varlist using filename
Muchos se fusionan en variables clave específicas
merge m:1 varlist using filename
Muchos a muchos se fusionan en variables clave especificadas
merge m:m varlist using filename
Fusión uno a uno por observación
merge 1:1 _n using filename
Detalles, explicaciones y ejemplos se pueden encontrar en la help merge
.
Si no sabe si las observaciones son únicas en un conjunto de datos, puede hacer la siguiente comprobación:
bysort idvar: gen N = _N
ta N
Si encuentra valores de N que son mayores que 1, sabrá que las observaciones no son únicas con respecto a idvar.
Esta es, de hecho, la nueva sintaxis del comando de merge
que se ha introducido con Stata 11. Antes de Stata 11, el comando de fusión era un poco más simple. Simplemente tenía que ordenar sus datos, y luego podría hacer:
merge varlist using filename
Por cierto, todavía puede usar esta sintaxis anterior en Stata 11 o superior.
joinby, incomparable (ambos) es el comando que corresponde a la fusión del comando R.
En particular, merge m: m NO hace una fusión de muchos a muchos (es decir, unión completa) al contrario de lo que implica la documentación.