Fusionando la ENOE

AE
17/06/2019

Previo

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")

Juntando bases

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.

i_bis 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?

  1. El orden de las variables corresponde al orden que pusimos las bases en las opciones.

  2. 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 >

Merge hogar a población

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

Bases de distinto tamaño

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: image

(tomada de aquí:https://www.dummies.com/programming/r/how-to-use-the-merge-function-with-data-sets-in-r/)