AE
17/06/2019
Vamos a cargar la base de hogares de la ENOE con la que hemos estado trabajando.
¡Recuerda, poner el directorio!
setwd("/Users/anaescoto/Dropbox/PAPIME2019/Talleres/Taller2")
#install.packages("foreign", repos = "http://cran.us.r-project.org", dependencies = TRUE)
library(foreign)
sdemt119 <- read.dbf("SDEMT119.dbf")Muchas bases de datos están organizadas en varias tablas. La ventaja de la programación por objetos de R, nos permite tener las bases cargadas en nuestro ambiente y llamarlas y juntarlas cuando sea necesario.
Vamos a suponer que necesitamos usar información de la tabla de viviendas de la ENOE, de México, con la información a nivel de individuos que hemos estado utilizando.
Entonces cargamos la base de viviendas (la puedes bajar de INEGI , o del sitio "Base de datos")
vivt119<- read.dbf("VIVT119.dbf")
dim(vivt119)## [1] 126863 20
Para juntar bases usamos el comando "merge" En "by" ponemos el id, correspondiente a la variable o variables que forman el id, entrecomillado. Cuando estamos mezclando bases del mismo nivel de análisis el id es igual en ambas bases. Cuando estamos incoporando información de bases de distinto nivel debemos escoger En general ponemos el id de la base de mayor nivel. En este caso, sabemos que a una vivienda corresponde más de un hogar.
Tal como revisamos nuestra documentación, sabemos que el id de la tabla viviendas es c("CD_A", "ENT", "CON", "V_SEL")
hogt119 <- read.dbf("HOGT119.dbf")
dim(hogt119)## [1] 127606 31
merge_data<- merge(vivt119, hogt119, by=c("CD_A", "ENT", "CON", "V_SEL"))Revisemos la base creada
names(merge_data)## [1] "CD_A" "ENT" "CON" "V_SEL" "LOC.x"
## [6] "MUN.x" "EST.x" "EST_D.x" "AGEB.x" "T_LOC.x"
## [11] "UPM.x" "D_SEM.x" "N_PRO_VIV.x" "N_ENT.x" "PER.x"
## [16] "P1" "P2" "P3" "UR.x" "FAC.x"
## [21] "LOC.y" "MUN.y" "EST.y" "EST_D.y" "AGEB.y"
## [26] "T_LOC.y" "UPM.y" "D_SEM.y" "N_PRO_VIV.y" "N_HOG"
## [31] "H_MUD" "N_ENT.y" "PER.y" "R_PRE" "P_DIA"
## [36] "P_MES" "P_ANIO" "R_DEF" "D_DIA" "D_MES"
## [41] "D_ANIO" "E_OBS" "P4_1" "P4_2" "INF"
## [46] "UR.y" "FAC.y"
dim(merge_data)## [1] 127606 47
¿Qué observas?
El orden de las variables corresponde al orden que pusimos las bases en las opciones.
También vemos que las variables que se repetían en ambas bases se repiten en la nueva base, seguida de un un punto y una "x", para lo que proviene de la primera base y con una "y", lo que proviene de la segunda. R dejará las variables intactas y son coincidentes, en nuestro caso, porque las variables son iguales. R hace esto para precaver que por error tengamos alguna variable con un nombre igual y no sea la misma
Revisemos que las variables "repetidas son iguales
table(merge_data$ENT.x, merge_data$ENT.y)## < table of extent 0 x 0 >
Hoy queremos incorporar la información de hogar a la base de población entrevistatada (por ejemplo la que hemos estado trababjando TPer_Vic1)
Aquí es más evidente la diferencia del nivel de las bases de las bases porque hay 406,036 personas entrevistadas en el módulo, en 127,606 hogares en 126,863 viviendas.
Hogares {hogares} es "CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD" Demográfico {individuos} es "CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD", "N_REN" Cuestionario 1 {individuos} "CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD", "N_REN" cuestionario 2 {individuos} "CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD", "N_REN".
Esto significa que tenemos un id compuesto. No es una sola variable. Para esto modificamos ligeramente cómo ponemos el "by", pero siempre eligiendo el id de la base de mayor nivel. (Tené cuidado con los paréntesis)
merge_data2<- merge(hogt119, sdemt119, by=c("CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD"))
dim(merge_data2)## [1] 406036 129
Revisemos la base
str(merge_data2)## 'data.frame': 406036 obs. of 129 variables:
## $ CD_A : Factor w/ 42 levels "01","02","03",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ ENT : Factor w/ 32 levels "01","02","03",..: 9 9 9 9 9 9 9 9 9 9 ...
## $ CON : Factor w/ 1381 levels "40001","40002",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ V_SEL : Factor w/ 24 levels "01","02","03",..: 1 1 1 1 1 2 2 2 2 3 ...
## $ N_HOG : Factor w/ 6 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ H_MUD : Factor w/ 5 levels "0","1","2","3",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ LOC.x : Factor w/ 577 levels "0001","0002",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ MUN.x : Factor w/ 225 levels "001","002","003",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ EST.x : Factor w/ 4 levels "10","20","30",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ EST_D.x : int 117 117 117 117 117 117 117 117 117 117 ...
## $ AGEB.x : Factor w/ 1 level "00000": 1 1 1 1 1 1 1 1 1 1 ...
## $ T_LOC.x : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ...
## $ UPM.x : Factor w/ 19755 levels "0100013","0100017",..: 5363 5363 5363 5363 5363 5363 5363 5363 5363 5363 ...
## $ D_SEM.x : Factor w/ 65 levels "101","102","103",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ N_PRO_VIV.x: Factor w/ 634 levels "0001","0002",..: 1 1 1 1 1 23 23 23 23 53 ...
## $ N_ENT.x : Factor w/ 5 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ PER.x : Factor w/ 1 level "119": 1 1 1 1 1 1 1 1 1 1 ...
## $ R_PRE : Factor w/ 15 levels "00","01","02",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ P_DIA : Factor w/ 31 levels "01","02","03",..: 31 31 31 31 31 31 31 31 31 31 ...
## $ P_MES : Factor w/ 5 levels "01","02","03",..: 5 5 5 5 5 5 5 5 5 5 ...
## $ P_ANIO : Factor w/ 2 levels "18","19": 1 1 1 1 1 1 1 1 1 1 ...
## $ R_DEF.x : Factor w/ 15 levels "00","01","02",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ D_DIA : Factor w/ 31 levels "01","02","03",..: 31 31 31 31 31 31 31 31 31 31 ...
## $ D_MES : Factor w/ 5 levels "01","02","03",..: 5 5 5 5 5 5 5 5 5 5 ...
## $ D_ANIO : Factor w/ 2 levels "18","19": 1 1 1 1 1 1 1 1 1 1 ...
## $ E_OBS : Factor w/ 2 levels "1","2": 2 2 2 2 2 2 2 2 2 2 ...
## $ P4_1 : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 4 4 4 4 1 ...
## $ P4_2 : Factor w/ 7 levels "01","02","03",..: 1 1 1 1 1 NA NA NA NA 1 ...
## $ INF : Factor w/ 17 levels "00","01","02",..: 16 16 16 16 16 2 2 2 2 3 ...
## $ UR.x : int 1 1 1 1 1 1 1 1 1 1 ...
## $ FAC.x : int 475 475 475 475 475 475 475 475 475 475 ...
## $ R_DEF.y : Factor w/ 2 levels "00","15": 1 1 1 1 1 1 1 1 1 1 ...
## $ LOC.y : Factor w/ 558 levels "0001","0002",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ MUN.y : Factor w/ 225 levels "001","002","003",..: 2 2 2 2 2 2 2 2 2 2 ...
## $ EST.y : Factor w/ 4 levels "10","20","30",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ EST_D.y : int 117 117 117 117 117 117 117 117 117 117 ...
## $ AGEB.y : Factor w/ 1 level "00000": 1 1 1 1 1 1 1 1 1 1 ...
## $ T_LOC.y : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ...
## $ UPM.y : Factor w/ 19732 levels "0100013","0100017",..: 5361 5361 5361 5361 5361 5361 5361 5361 5361 5361 ...
## $ D_SEM.y : Factor w/ 65 levels "101","102","103",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ N_PRO_VIV.y: Factor w/ 597 levels "0001","0002",..: 1 1 1 1 1 23 23 23 23 53 ...
## $ N_ENT.y : Factor w/ 5 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ PER.y : Factor w/ 1 level "119": 1 1 1 1 1 1 1 1 1 1 ...
## $ N_REN : Factor w/ 25 levels "01","02","03",..: 2 3 5 1 4 1 4 2 3 2 ...
## $ C_RES : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
## $ PAR_C : Factor w/ 34 levels "101","201","202",..: 2 4 20 1 4 1 4 4 4 4 ...
## $ SEX : Factor w/ 2 levels "1","2": 2 1 2 1 2 2 2 1 2 2 ...
## $ EDA : Factor w/ 100 levels "00","01","02",..: 49 17 77 47 13 44 14 19 17 42 ...
## $ NAC_DIA : Factor w/ 32 levels "01","02","03",..: 15 5 10 27 12 11 4 6 8 13 ...
## $ NAC_MES : Factor w/ 13 levels "01","02","03",..: 1 12 12 12 6 8 1 12 8 1 ...
## $ NAC_ANIO : Factor w/ 113 levels "1902","1903",..: 63 95 35 65 99 68 98 93 95 70 ...
## $ L_NAC_C : Factor w/ 42 levels "001","002","003",..: 9 9 38 9 9 9 15 15 15 9 ...
## $ CS_P12 : Factor w/ 3 levels "1","2","9": 1 1 1 1 1 1 1 1 1 1 ...
## $ CS_P13_1 : Factor w/ 11 levels "00","01","02",..: 8 4 8 7 3 8 4 5 4 8 ...
## $ CS_P13_2 : Factor w/ 10 levels "0","1","2","3",..: 5 4 4 3 7 5 2 3 4 5 ...
## $ CS_P14_C : Factor w/ 366 levels "0214","0814",..: 159 NA 202 65 NA 180 NA NA NA 148 ...
## $ CS_P15 : Factor w/ 4 levels "1","2","3","9": 3 NA 3 2 NA 3 NA NA NA 3 ...
## $ CS_P16 : Factor w/ 3 levels "1","2","9": 1 NA 2 1 NA 1 NA NA NA 1 ...
## $ CS_P17 : Factor w/ 3 levels "1","2","9": 2 1 2 2 1 2 1 1 1 2 ...
## $ N_HIJ : Factor w/ 26 levels "00","01","02",..: 3 NA 6 NA 1 4 1 NA 1 1 ...
## $ E_CON : Factor w/ 7 levels "1","2","3","4",..: 5 6 4 5 6 6 6 6 6 6 ...
## $ CS_AD_MOT : Factor w/ 11 levels "01","02","03",..: NA NA NA NA NA NA NA NA NA NA ...
## $ CS_P20_DES : Factor w/ 434 levels "A EFECTO DE NO CAUSARLE PROBLEMAS A R2",..: NA NA NA NA NA NA NA NA NA NA ...
## $ CS_AD_DES : Factor w/ 4 levels "1","2","3","9": NA NA NA NA NA NA NA NA NA NA ...
## $ CS_NR_MOT : Factor w/ 11 levels "01","02","03",..: NA NA NA NA NA NA NA NA NA NA ...
## $ CS_P22_DES : Factor w/ 201 levels "ACOMPA\xd1O A SU ESPOSO",..: NA NA NA NA NA NA NA NA NA NA ...
## $ CS_NR_ORI : Factor w/ 4 levels "1","2","3","9": NA NA NA NA NA NA NA NA NA NA ...
## $ UR.y : int 1 1 1 1 1 1 1 1 1 1 ...
## $ ZONA : int 2 2 2 2 2 2 2 2 2 2 ...
## $ SALARIO : int 3080 3080 3080 3080 3080 3080 3080 3080 3080 3080 ...
## $ FAC.y : int 475 475 475 475 475 475 475 475 475 475 ...
## $ CLASE1 : int 1 2 2 1 2 1 2 2 2 1 ...
## $ CLASE2 : int 1 4 4 1 4 1 4 4 4 1 ...
## $ CLASE3 : int 1 0 0 1 0 1 0 0 0 1 ...
## $ POS_OCU : int 1 0 0 2 0 1 0 0 0 1 ...
## $ SEG_SOC : int 1 0 0 2 0 1 0 0 0 1 ...
## $ RAMA : int 3 0 0 4 0 4 0 0 0 2 ...
## $ C_OCU11C : int 3 0 0 3 0 4 0 0 0 1 ...
## $ ING7C : int 7 0 0 7 0 7 0 0 0 5 ...
## $ DUR9C : int 3 0 0 8 0 3 0 0 0 4 ...
## $ EMPLE7C : int 5 0 0 2 0 6 0 0 0 5 ...
## $ MEDICA5C : int 3 0 0 1 0 3 0 0 0 3 ...
## $ BUSCAR5C : int 4 0 0 4 0 2 0 0 0 4 ...
## $ RAMA_EST1 : int 3 0 0 3 0 3 0 0 0 2 ...
## $ RAMA_EST2 : int 5 0 0 6 0 11 0 0 0 3 ...
## $ DUR_EST : int 3 0 0 5 0 3 0 0 0 3 ...
## $ AMBITO1 : int 2 0 0 2 0 2 0 0 0 2 ...
## $ AMBITO2 : int 5 0 0 3 0 7 0 0 0 4 ...
## $ TUE1 : int 1 0 0 1 0 2 0 0 0 1 ...
## $ TUE2 : int 1 0 0 2 0 4 0 0 0 1 ...
## $ TUE3 : int 0 0 0 0 0 2 0 0 0 0 ...
## $ BUSQUEDA : int 2 0 0 2 0 2 0 0 0 2 ...
## $ D_ANT_LAB : int 0 0 0 0 0 0 0 0 0 0 ...
## $ D_CEXP_EST : int 0 0 0 0 0 0 0 0 0 0 ...
## $ DUR_DES : int 0 0 0 0 0 0 0 0 0 0 ...
## $ SUB_O : int 0 0 0 0 0 1 0 0 0 0 ...
## $ S_CLASIFI : int 0 0 0 0 0 5 0 0 0 0 ...
## $ REMUNE2C : int 1 0 0 0 0 1 0 0 0 1 ...
## $ PRE_ASA : int 1 0 0 0 0 1 0 0 0 1 ...
## [list output truncated]
tail(merge_data2)## CD_A ENT CON V_SEL N_HOG H_MUD LOC.x MUN.x EST.x EST_D.x AGEB.x
## 406031 86 32 60039 19 1 0 0414 010 20 465 00000
## 406032 86 32 60039 19 1 0 0414 010 20 465 00000
## 406033 86 32 60039 19 1 0 0414 010 20 465 00000
## 406034 86 32 60039 19 1 0 0414 010 20 465 00000
## 406035 86 32 60039 20 1 0 0414 010 20 465 00000
## 406036 86 32 60039 20 1 0 0414 010 20 465 00000
## T_LOC.x UPM.x D_SEM.x N_PRO_VIV.x N_ENT.x PER.x R_PRE P_DIA P_MES
## 406031 4 3260030 503 0124 2 119 00 12 03
## 406032 4 3260030 503 0124 2 119 00 12 03
## 406033 4 3260030 503 0124 2 119 00 12 03
## 406034 4 3260030 503 0124 2 119 00 12 03
## 406035 4 3260030 503 0133 2 119 02 12 03
## 406036 4 3260030 503 0133 2 119 02 12 03
## P_ANIO R_DEF.x D_DIA D_MES D_ANIO E_OBS P4_1 P4_2 INF UR.x FAC.x
## 406031 19 00 12 03 19 2 4 <NA> 02 2 251
## 406032 19 00 12 03 19 2 4 <NA> 02 2 251
## 406033 19 00 12 03 19 2 4 <NA> 02 2 251
## 406034 19 00 12 03 19 2 4 <NA> 02 2 251
## 406035 19 00 28 03 19 2 4 <NA> 02 2 251
## 406036 19 00 28 03 19 2 4 <NA> 02 2 251
## R_DEF.y LOC.y MUN.y EST.y EST_D.y AGEB.y T_LOC.y UPM.y D_SEM.y
## 406031 00 0414 010 20 465 00000 4 3260030 503
## 406032 00 0414 010 20 465 00000 4 3260030 503
## 406033 00 0414 010 20 465 00000 4 3260030 503
## 406034 00 0414 010 20 465 00000 4 3260030 503
## 406035 00 0414 010 20 465 00000 4 3260030 503
## 406036 00 0414 010 20 465 00000 4 3260030 503
## N_PRO_VIV.y N_ENT.y PER.y N_REN C_RES PAR_C SEX EDA NAC_DIA NAC_MES
## 406031 0124 2 119 02 1 201 2 27 07 08
## 406032 0124 2 119 01 1 101 1 33 04 02
## 406033 0124 2 119 03 1 301 1 08 14 02
## 406034 0124 2 119 04 1 301 2 01 09 11
## 406035 0133 2 119 01 1 101 1 68 30 05
## 406036 0133 2 119 02 1 201 2 65 25 05
## NAC_ANIO L_NAC_C CS_P12 CS_P13_1 CS_P13_2 CS_P14_C CS_P15 CS_P16
## 406031 1991 032 1 03 3 <NA> <NA> <NA>
## 406032 1986 032 1 03 3 <NA> <NA> <NA>
## 406033 2011 032 1 02 1 <NA> <NA> <NA>
## 406034 2017 032 <NA> <NA> <NA> <NA> <NA> <NA>
## 406035 1950 032 1 02 2 <NA> <NA> <NA>
## 406036 1953 014 1 02 6 <NA> <NA> <NA>
## CS_P17 N_HIJ E_CON CS_AD_MOT CS_P20_DES CS_AD_DES CS_NR_MOT
## 406031 2 02 5 <NA> <NA> <NA> <NA>
## 406032 2 <NA> 5 <NA> <NA> <NA> <NA>
## 406033 1 <NA> <NA> <NA> <NA> <NA> <NA>
## 406034 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 406035 2 <NA> 5 <NA> <NA> <NA> <NA>
## 406036 2 04 5 <NA> <NA> <NA> <NA>
## CS_P22_DES CS_NR_ORI UR.y ZONA SALARIO FAC.y CLASE1 CLASE2 CLASE3
## 406031 <NA> <NA> 2 2 3080 251 2 4 0
## 406032 <NA> <NA> 2 2 3080 251 1 1 1
## 406033 <NA> <NA> 2 2 3080 251 0 0 0
## 406034 <NA> <NA> 2 2 3080 251 0 0 0
## 406035 <NA> <NA> 2 2 3080 251 2 3 0
## 406036 <NA> <NA> 2 2 3080 251 1 1 4
## POS_OCU SEG_SOC RAMA C_OCU11C ING7C DUR9C EMPLE7C MEDICA5C BUSCAR5C
## 406031 0 0 0 0 0 0 0 0 0
## 406032 1 2 6 10 2 5 5 1 4
## 406033 0 0 0 0 0 0 0 0 0
## 406034 0 0 0 0 0 0 0 0 0
## 406035 0 0 0 0 0 0 0 0 0
## 406036 3 2 3 6 2 1 1 1 4
## RAMA_EST1 RAMA_EST2 DUR_EST AMBITO1 AMBITO2 TUE1 TUE2 TUE3 BUSQUEDA
## 406031 0 0 0 0 0 0 0 0 0
## 406032 1 1 4 1 0 1 2 0 2
## 406033 0 0 0 0 0 0 0 0 0
## 406034 0 0 0 0 0 0 0 0 0
## 406035 0 0 0 0 0 0 0 0 0
## 406036 3 5 1 2 2 3 5 0 2
## D_ANT_LAB D_CEXP_EST DUR_DES SUB_O S_CLASIFI REMUNE2C PRE_ASA
## 406031 0 0 0 0 0 0 0
## 406032 0 0 0 0 0 1 2
## 406033 0 0 0 0 0 0 0
## 406034 0 0 0 0 0 0 0
## 406035 0 0 0 0 0 0 0
## 406036 0 0 0 0 0 0 0
## TIP_CON DISPO NODISPO C_INAC5C PNEA_EST NIV_INS EDA5C EDA7C EDA12C
## 406031 0 0 9 2 3 3 2 2 3
## 406032 5 0 0 0 0 3 2 3 4
## 406033 0 0 0 0 0 1 0 0 0
## 406034 0 0 0 0 0 0 0 0 0
## 406035 0 4 0 5 2 1 4 6 11
## 406036 0 0 0 0 0 2 4 6 11
## EDA19C HIJ5C DOMESTICO ANIOS_ESC HRSOCUP INGOCUP ING_X_HRS TPG_P8A
## 406031 8 2 8 9 0 0 0.00000 0
## 406032 9 0 3 9 36 3354 21.66667 0
## 406033 3 0 0 0 0 0 0.00000 0
## 406034 2 0 0 0 0 0 0.00000 0
## 406035 16 0 6 2 0 0 0.00000 0
## 406036 16 3 3 6 0 5375 0.00000 0
## TCCO CP_ANOC IMSSISSSTE MA48ME1SM P14APOYOS SCIAN T_TRA EMP_PPAL
## 406031 0 0 0 0 2 0 1 0
## 406032 0 0 4 0 2 1 1 1
## 406033 0 0 0 0 0 0 0 0
## 406034 0 0 0 0 0 0 0 0
## 406035 0 0 0 0 1 0 1 0
## 406036 0 1 4 0 2 7 1 1
## TUE_PPAL TRANS_PPAL MH_FIL2 MH_COL SEC_INS
## 406031 0 0 0 0 0
## 406032 2 0 4 1 3
## 406033 0 0 0 0 0
## 406034 0 0 0 0 0
## 406035 0 0 0 0 0
## 406036 1 0 1 7 8
Hasta ahorita hemos hecho merge que son de unidades de distinto nivel y son incluyentes. A veces tenemos bases de datos que son de distinto tamaño y del mismo nivel. A veces las dos aportan casos y a veces aportan variables, y a veces, las dos aportan las dos cosas.
Hay secciones de la enigh que no corresponden a toda la población. Por ejemplo, la sección de trabajo sólo la llenan los que tienen edad de trabajar.
coe1t119<- read.dbf("COE1T119.dbf")
dim(coe1t119)## [1] 321402 186
Checa que no tenemos 406,036 observaciones, sino sólo 321,402
Vamos a hacer el primer tipo de merge
merge_data3<-merge(sdemt119,coe1t119, by=c("CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD", "N_REN"))
dim(merge_data3)## [1] 321402 283
¡La base nueva no tiene a toda la población, solo la que tiene en la base más pequeña! Tenemos sólo 321,402 personas.
En realidad hay cuatro formas de hacer un merge
*A. Casos comunes en las dos bases
Por default, el comando tiene activado la opción "all = FALSE", que nos deja los datos de ambas bases comunes. (tipo una intersección)
merge_data3<-merge(sdemt119,coe1t119, by=c("CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD", "N_REN"), all = FALSE)
dim(merge_data3)## [1] 321402 283
*B. Todos los casos Si cambiamos la opción "all = TRUE", que nos deja los datos comunes a ambas bases. (como una unión)
merge_data3<-merge(sdemt119,coe1t119, by=c("CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD", "N_REN"), all = T)
dim(merge_data3)## [1] 406036 283
*C. Casos de la base 1
Si queremos quedarnos con todos los datos que hay en la primera base, x, vamos a usar a opción all.x = TRUE.
merge_data3<-merge(sdemt119,coe1t119, by=c("CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD", "N_REN"), all.x = TRUE)
dim(merge_data3)## [1] 406036 283
*D. Casos de la base 2
Notamos que hoy sí tenemos los datos de toda la población y hay missings en las variables aportadas por la base de trabajo
Si queremos lo contrario, quedarnos con los datos aportados por la segunda base, y, vamos a usar la opción all.y=TRUE En este caso, como la base de trabajos es un subconjunto, es igual a lo que hicimos en el caso A.
merge_data3<-merge(sdemt119,coe1t119, by=c("CD_A", "ENT", "CON", "V_SEL", "N_HOG", "H_MUD", "N_REN"), all.y = TRUE)
dim(merge_data3)## [1] 321402 283
Esta imagen te puede ser utilidad:
(tomada de aquí:https://www.dummies.com/programming/r/how-to-use-the-merge-function-with-data-sets-in-r/)