Vamos a cargar la base de hogares de la ENIGH con la que hemos estado trabajando.
¡Recuerda, poner el directorio!
setwd("/Users/anaescoto/Dropbox/DGAPA/2018/RMD")
install.packages("foreign", repos = "http://cran.us.r-project.org", dependencies = TRUE)
## Installing package into '/Users/anaescoto/Library/R/3.3/library'
## (as 'lib' is unspecified)
##
## There is a binary version available but the source version is
## later:
## binary source needs_compilation
## foreign 0.8-69 0.8-71 TRUE
## installing the source package 'foreign'
## Warning in install.packages("foreign", repos = "http://cran.us.r-
## project.org", : installation of package 'foreign' had non-zero exit status
library(foreign)
enigh_concentrado <- read.dbf("enigh_concentrado_mod.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 ENIGH-2016, de México, con la información a nivel de hogares que hemos estado utilizando.
Entonces cargamos la base de viviendas (la puedes bajar de INEGI , o del sitio “Base de datos” del Curso)
enigh_viviendas <- read.dbf("viviendas.dbf")
dim(enigh_viviendas)
## [1] 69169 64
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 “folioviv”
merge_data<- merge(enigh_viviendas, enigh_concentrado, by="folioviv")
Revisemos la base creada
names(merge_data)
## [1] "folioviv" "tipo_viv" "mat_pared" "mat_techos" "mat_pisos"
## [6] "antiguedad" "antigua_ne" "cocina" "cocina_dor" "cuart_dorm"
## [11] "num_cuarto" "disp_agua" "dotac_agua" "excusado" "uso_compar"
## [16] "sanit_agua" "biodigest" "bano_comp" "bano_excus" "bano_regad"
## [21] "drenaje" "disp_elect" "focos_inca" "focos_ahor" "combustibl"
## [26] "estufa_chi" "eli_basura" "tenencia" "renta" "estim_pago"
## [31] "pago_viv" "pago_mesp" "tipo_adqui" "viv_usada" "tipo_finan"
## [36] "num_dueno1" "hog_dueno1" "num_dueno2" "hog_dueno2" "escrituras"
## [41] "lavadero" "fregadero" "regadera" "tinaco_azo" "cisterna"
## [46] "pileta" "calent_sol" "calent_gas" "medidor_lu" "bomba_agua"
## [51] "tanque_gas" "aire_acond" "calefacc" "tot_resid" "tot_hom"
## [56] "tot_muj" "tot_hog" "ubica_geo.x" "ageb.x" "tam_loc.x"
## [61] "est_socio.x" "est_dis.x" "upm.x" "factor.x" "foliohog"
## [66] "ubica_geo.y" "ageb.y" "tam_loc.y" "est_socio.y" "est_dis.y"
## [71] "upm.y" "factor.y" "clase_hog" "sexo_jefe" "edad_jefe"
## [76] "educa_jefe" "tot_integ" "hombres" "mujeres" "mayores"
## [81] "menores" "p12_64" "p65mas" "ocupados" "percep_ing"
## [86] "perc_ocupa" "ing_cor" "ingtrab" "trabajo" "sueldos"
## [91] "horas_extr" "comisiones" "aguinaldo" "indemtrab" "otra_rem"
## [96] "remu_espec" "negocio" "noagrop" "industria" "comercio"
## [101] "servicios" "agrope" "agricolas" "pecuarios" "reproducc"
## [106] "pesca" "otros_trab" "rentas" "utilidad" "arrenda"
## [111] "transfer" "jubilacion" "becas" "donativos" "remesas"
## [116] "bene_gob" "transf_hog" "trans_inst" "estim_alqu" "otros_ing"
## [121] "gasto_mon" "alimentos" "ali_dentro" "cereales" "carnes"
## [126] "pescado" "leche" "huevo" "aceites" "tuberculo"
## [131] "verduras" "frutas" "azucar" "cafe" "especias"
## [136] "otros_alim" "bebidas" "ali_fuera" "tabaco" "vesti_calz"
## [141] "vestido" "calzado" "vivienda" "alquiler" "pred_cons"
## [146] "agua" "energia" "limpieza" "cuidados" "utensilios"
## [151] "enseres" "salud" "atenc_ambu" "hospital" "medicinas"
## [156] "transporte" "publico" "foraneo" "adqui_vehi" "mantenim"
## [161] "refaccion" "combus" "comunica" "educa_espa" "educacion"
## [166] "esparci" "paq_turist" "personales" "cuida_pers" "acces_pers"
## [171] "otros_gas" "transf_gas" "percep_tot" "retiro_inv" "prestamos"
## [176] "otras_perc" "ero_nm_viv" "ero_nm_hog" "erogac_tot" "cuota_viv"
## [181] "mater_serv" "material" "servicio" "deposito" "prest_terc"
## [186] "pago_tarje" "deudas" "balance" "otras_erog" "smg"
dim(merge_data)
## [1] 70311 190
¿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$est_socio.x, merge_data$est_socio.y)
##
## 1 2 3 4
## 1 16017 0 0 0
## 2 0 37186 0 0
## 3 0 0 12464 0
## 4 0 0 0 4644
Hoy queremos incorporar la información de hogar a la base de población Vamos a cargar la base.
Cargamos la base
enigh_pobla <- read.dbf("poblacion.dbf")
dim(enigh_pobla)
## [1] 257805 178
Aquí es más evidente la diferencia del nivel de las bases de las bases porque hay 257,805 personas en 70,311 hogares en 69,169 viviendas
Tal como está en la documentación de la ENIGH (http://www.beta.inegi.org.mx/contenidos/proyectos/enchogares/regulares/enigh/nc/2016/doc/702825091996.pdf), el id o llave única de las bases son las siguientes
concentrado {hogares} es “folioviv” “foliohog” población {individuos} es “folioviv” “foliohog” “numren”
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(enigh_concentrado, enigh_pobla, by=c("folioviv","foliohog"))
dim(merge_data2)
## [1] 257805 303
Revisemos la base
str(merge_data2)
## 'data.frame': 257805 obs. of 303 variables:
## $ folioviv : Factor w/ 69169 levels "0100003801","0100003802",..: 1 1 2 2 3 3 3 3 3 3 ...
## $ foliohog : Factor w/ 5 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ ubica_geo : Factor w/ 3103 levels "010010001","010010102",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ ageb : Factor w/ 3464 levels "001-0","001-1",..: 245 245 245 245 245 245 245 245 245 245 ...
## $ tam_loc : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ...
## $ est_socio : Factor w/ 4 levels "1","2","3","4": 4 4 4 4 4 4 4 4 4 4 ...
## $ est_dis : Factor w/ 536 levels "001","002","003",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ upm : Factor w/ 7891 levels "0000010","0000020",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ factor : int 247 247 247 247 247 247 247 247 247 247 ...
## $ clase_hog : Factor w/ 5 levels "Compuesto","Corresidentes",..: 4 4 4 4 4 4 4 4 4 4 ...
## $ sexo_jefe : Factor w/ 2 levels "Hombre","Mujer": 1 1 1 1 1 1 1 1 1 1 ...
## $ edad_jefe : int 33 33 29 29 47 47 47 47 47 47 ...
## $ educa_jefe: Factor w/ 11 levels "01","02","03",..: 10 10 10 10 10 10 10 10 10 10 ...
## $ tot_integ : int 2 2 2 2 6 6 6 6 6 6 ...
## $ hombres : int 1 1 1 1 2 2 2 2 2 2 ...
## $ mujeres : int 1 1 1 1 4 4 4 4 4 4 ...
## $ mayores : int 2 2 2 2 3 3 3 3 3 3 ...
## $ menores : int 0 0 0 0 3 3 3 3 3 3 ...
## $ p12_64 : int 2 2 2 2 3 3 3 3 3 3 ...
## $ p65mas : int 0 0 0 0 0 0 0 0 0 0 ...
## $ ocupados : int 2 2 2 2 1 1 1 1 1 1 ...
## $ percep_ing: int 2 2 2 2 1 1 1 1 1 1 ...
## $ perc_ocupa: int 2 2 2 2 1 1 1 1 1 1 ...
## $ ing_cor : num 100697 100697 146616 146616 94623 ...
## $ ingtrab : num 100697 100697 144157 144157 82623 ...
## $ trabajo : num 100697 100697 144157 144157 82623 ...
## $ sueldos : num 97377 97377 91475 91475 82623 ...
## $ horas_extr: num 0 0 0 0 0 0 0 0 0 0 ...
## $ comisiones: num 0 0 0 0 0 0 0 0 0 0 ...
## $ aguinaldo : num 3320 3320 10820 10820 0 ...
## $ indemtrab : num 0 0 0 0 0 0 0 0 0 0 ...
## $ otra_rem : num 0 0 7623 7623 0 ...
## $ remu_espec: num 0 0 34239 34239 0 ...
## $ negocio : num 0 0 0 0 0 0 0 0 0 0 ...
## $ noagrop : num 0 0 0 0 0 0 0 0 0 0 ...
## $ industria : num 0 0 0 0 0 0 0 0 0 0 ...
## $ comercio : num 0 0 0 0 0 0 0 0 0 0 ...
## $ servicios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ agrope : num 0 0 0 0 0 0 0 0 0 0 ...
## $ agricolas : num 0 0 0 0 0 0 0 0 0 0 ...
## $ pecuarios : num 0 0 0 0 0 0 0 0 0 0 ...
## $ reproducc : num 0 0 0 0 0 0 0 0 0 0 ...
## $ pesca : num 0 0 0 0 0 0 0 0 0 0 ...
## $ otros_trab: num 0 0 0 0 0 0 0 0 0 0 ...
## $ rentas : num 0 0 0 0 0 0 0 0 0 0 ...
## $ utilidad : num 0 0 0 0 0 0 0 0 0 0 ...
## $ arrenda : num 0 0 0 0 0 0 0 0 0 0 ...
## $ transfer : num 0 0 2459 2459 0 ...
## $ jubilacion: num 0 0 0 0 0 0 0 0 0 0 ...
## $ becas : num 0 0 0 0 0 0 0 0 0 0 ...
## $ donativos : num 0 0 2459 2459 0 ...
## $ remesas : num 0 0 0 0 0 0 0 0 0 0 ...
## $ bene_gob : num 0 0 0 0 0 0 0 0 0 0 ...
## $ transf_hog: num 0 0 0 0 0 0 0 0 0 0 ...
## $ trans_inst: num 0 0 0 0 0 0 0 0 0 0 ...
## $ estim_alqu: num 0 0 0 0 12000 12000 12000 12000 12000 12000 ...
## $ otros_ing : num 0 0 0 0 0 0 0 0 0 0 ...
## $ gasto_mon : num 46600 46600 82428 82428 54793 ...
## $ alimentos : num 10622 10622 14638 14638 21214 ...
## $ ali_dentro: num 9953 9953 6281 6281 13114 ...
## $ cereales : num 1764 1764 945 945 1877 ...
## $ carnes : num 1920 1920 579 579 2803 ...
## $ pescado : num 0 0 0 0 0 0 0 0 0 0 ...
## $ leche : num 1130 1130 951 951 3381 ...
## $ huevo : num 0 0 675 675 244 ...
## $ aceites : num 0 0 0 0 334 ...
## $ tuberculo : num 0 0 0 0 193 ...
## $ verduras : num 154 154 180 180 1466 ...
## $ frutas : num 489 489 0 0 1466 ...
## $ azucar : num 450 450 0 0 0 ...
## $ cafe : num 0 0 0 0 0 0 0 0 0 0 ...
## $ especias : num 1013 1013 0 0 0 ...
## $ otros_alim: num 1580 1580 2775 2775 514 ...
## $ bebidas : num 1453 1453 176 176 836 ...
## $ ali_fuera : num 669 669 8357 8357 8100 ...
## $ tabaco : num 0 0 0 0 0 0 0 0 0 0 ...
## $ vesti_calz: num 1888 1888 9416 9416 3463 ...
## $ vestido : num 1888 1888 5674 5674 2387 ...
## $ calzado : num 0 0 3742 3742 1076 ...
## $ vivienda : num 10544 10544 9526 9526 930 ...
## $ alquiler : num 8100 8100 9000 9000 0 0 0 0 0 0 ...
## $ pred_cons : num 450 450 0 0 0 0 0 0 0 0 ...
## $ agua : num 750 750 291 291 630 630 630 630 630 630 ...
## $ energia : num 1244 1244 236 236 300 ...
## $ limpieza : num 15343 15343 8407 8407 9278 ...
## $ cuidados : num 1425 1425 1524 1524 1206 ...
## $ utensilios: num 0 0 342 342 695 ...
## $ enseres : num 13918 13918 6541 6541 7377 ...
## $ salud : num 983 983 4397 4397 1448 ...
## $ atenc_ambu: num 983 983 1590 1590 0 ...
## $ hospital : num 0 0 2808 2808 0 ...
## $ medicinas : num 0 0 0 0 1448 ...
## $ transporte: num 3450 3450 10367 10367 13050 ...
## $ publico : num 0 0 0 0 0 0 0 0 0 0 ...
## $ foraneo : num 0 0 2754 2754 0 ...
## $ adqui_vehi: num 0 0 0 0 0 0 0 0 0 0 ...
## $ mantenim : num 2100 2100 5363 5363 9000 ...
## $ refaccion : num 0 0 2213 2213 0 ...
## $ combus : num 2100 2100 3150 3150 9000 9000 9000 9000 9000 9000 ...
## [list output truncated]
tail(merge_data2)
## folioviv foliohog ubica_geo ageb tam_loc est_socio est_dis
## 257800 3260801905 1 320580001 002-A 4 2 536
## 257801 3260801906 1 320580001 002-A 4 2 536
## 257802 3260801906 1 320580001 002-A 4 2 536
## 257803 3260801906 1 320580001 002-A 4 2 536
## 257804 3260801906 1 320580001 002-A 4 2 536
## 257805 3260801906 1 320580001 002-A 4 2 536
## upm factor clase_hog sexo_jefe edad_jefe educa_jefe tot_integ
## 257800 0079010 198 Nuclear Hombre 67 09 3
## 257801 0079010 198 Extenso Hombre 62 05 5
## 257802 0079010 198 Extenso Hombre 62 05 5
## 257803 0079010 198 Extenso Hombre 62 05 5
## 257804 0079010 198 Extenso Hombre 62 05 5
## 257805 0079010 198 Extenso Hombre 62 05 5
## hombres mujeres mayores menores p12_64 p65mas ocupados percep_ing
## 257800 1 2 2 1 1 1 0 1
## 257801 2 3 4 1 4 0 3 3
## 257802 2 3 4 1 4 0 3 3
## 257803 2 3 4 1 4 0 3 3
## 257804 2 3 4 1 4 0 3 3
## 257805 2 3 4 1 4 0 3 3
## perc_ocupa ing_cor ingtrab trabajo sueldos horas_extr comisiones
## 257800 0 23385.60 0.00 0.00 0.00 0 0
## 257801 3 15888.51 11533.68 7522.82 7522.82 0 0
## 257802 3 15888.51 11533.68 7522.82 7522.82 0 0
## 257803 3 15888.51 11533.68 7522.82 7522.82 0 0
## 257804 3 15888.51 11533.68 7522.82 7522.82 0 0
## 257805 3 15888.51 11533.68 7522.82 7522.82 0 0
## aguinaldo indemtrab otra_rem remu_espec negocio noagrop industria
## 257800 0 0 0 0 0 0 0
## 257801 0 0 0 0 0 0 0
## 257802 0 0 0 0 0 0 0
## 257803 0 0 0 0 0 0 0
## 257804 0 0 0 0 0 0 0
## 257805 0 0 0 0 0 0 0
## comercio servicios agrope agricolas pecuarios reproducc pesca
## 257800 0 0 0 0 0 0 0
## 257801 0 0 0 0 0 0 0
## 257802 0 0 0 0 0 0 0
## 257803 0 0 0 0 0 0 0
## 257804 0 0 0 0 0 0 0
## 257805 0 0 0 0 0 0 0
## otros_trab rentas utilidad arrenda transfer jubilacion becas
## 257800 0.00 0 0 0 21933.99 17608.69 0
## 257801 4010.86 0 0 0 0.00 0.00 0
## 257802 4010.86 0 0 0 0.00 0.00 0
## 257803 4010.86 0 0 0 0.00 0.00 0
## 257804 4010.86 0 0 0 0.00 0.00 0
## 257805 4010.86 0 0 0 0.00 0.00 0
## donativos remesas bene_gob transf_hog trans_inst estim_alqu
## 257800 0 0 1614.13 1928.57 782.6 1451.61
## 257801 0 0 0.00 0.00 0.0 4354.83
## 257802 0 0 0.00 0.00 0.0 4354.83
## 257803 0 0 0.00 0.00 0.0 4354.83
## 257804 0 0 0.00 0.00 0.0 4354.83
## 257805 0 0 0.00 0.00 0.0 4354.83
## otros_ing gasto_mon alimentos ali_dentro cereales carnes pescado
## 257800 0 28360.73 6454.20 6454.20 1671.41 899.99 0
## 257801 0 12278.79 5965.66 5322.81 1928.55 1928.57 0
## 257802 0 12278.79 5965.66 5322.81 1928.55 1928.57 0
## 257803 0 12278.79 5965.66 5322.81 1928.55 1928.57 0
## 257804 0 12278.79 5965.66 5322.81 1928.55 1928.57 0
## 257805 0 12278.79 5965.66 5322.81 1928.55 1928.57 0
## leche huevo aceites tuberculo verduras frutas azucar cafe
## 257800 1002.84 668.57 0 231.42 1041.41 0 0 0
## 257801 334.28 0.00 0 154.28 359.99 0 0 0
## 257802 334.28 0.00 0 154.28 359.99 0 0 0
## 257803 334.28 0.00 0 154.28 359.99 0 0 0
## 257804 334.28 0.00 0 154.28 359.99 0 0 0
## 257805 334.28 0.00 0 154.28 359.99 0 0 0
## especias otros_alim bebidas ali_fuera tabaco vesti_calz vestido
## 257800 0 0 938.56 0.00 0 0.00 0.00
## 257801 0 0 617.14 642.85 0 313.04 117.39
## 257802 0 0 617.14 642.85 0 313.04 117.39
## 257803 0 0 617.14 642.85 0 313.04 117.39
## 257804 0 0 617.14 642.85 0 313.04 117.39
## 257805 0 0 617.14 642.85 0 313.04 117.39
## calzado vivienda alquiler pred_cons agua energia limpieza cuidados
## 257800 0.00 905.32 0 75 210 620.32 5548.09 412.23
## 257801 195.65 1395.96 0 0 300 1095.96 307.71 307.71
## 257802 195.65 1395.96 0 0 300 1095.96 307.71 307.71
## 257803 195.65 1395.96 0 0 300 1095.96 307.71 307.71
## 257804 195.65 1395.96 0 0 300 1095.96 307.71 307.71
## 257805 195.65 1395.96 0 0 300 1095.96 307.71 307.71
## utensilios enseres salud atenc_ambu hospital medicinas transporte
## 257800 0 5135.86 518.47 518.47 0 0 5681.05
## 257801 0 0.00 195.65 195.65 0 0 2651.61
## 257802 0 0.00 195.65 195.65 0 0 2651.61
## 257803 0 0.00 195.65 195.65 0 0 2651.61
## 257804 0 0.00 195.65 195.65 0 0 2651.61
## 257805 0 0.00 195.65 195.65 0 0 2651.61
## publico foraneo adqui_vehi mantenim refaccion combus comunica
## 257800 0 2445.65 0 2035.40 293.47 1741.93 1200
## 257801 0 0.00 0 1451.61 0.00 1451.61 1200
## 257802 0 0.00 0 1451.61 0.00 1451.61 1200
## 257803 0 0.00 0 1451.61 0.00 1451.61 1200
## 257804 0 0.00 0 1451.61 0.00 1451.61 1200
## 257805 0 0.00 0 1451.61 0.00 1451.61 1200
## educa_espa educacion esparci paq_turist personales cuida_pers
## 257800 8469.43 2044.87 555 5869.56 784.17 534.17
## 257801 555.00 0.00 555 0.00 894.16 894.16
## 257802 555.00 0.00 555 0.00 894.16 894.16
## 257803 555.00 0.00 555 0.00 894.16 894.16
## 257804 555.00 0.00 555 0.00 894.16 894.16
## 257805 555.00 0.00 555 0.00 894.16 894.16
## acces_pers otros_gas transf_gas percep_tot retiro_inv prestamos
## 257800 0 250 0 1542.85 0 0.00
## 257801 0 0 0 2005.42 0 2005.42
## 257802 0 0 0 2005.42 0 2005.42
## 257803 0 0 0 2005.42 0 2005.42
## 257804 0 0 0 2005.42 0 2005.42
## 257805 0 0 0 2005.42 0 2005.42
## otras_perc ero_nm_viv ero_nm_hog erogac_tot cuota_viv mater_serv
## 257800 0 0 1542.85 978.26 0 0
## 257801 0 0 0.00 1132.82 0 0
## 257802 0 0 0.00 1132.82 0 0
## 257803 0 0 0.00 1132.82 0 0
## 257804 0 0 0.00 1132.82 0 0
## 257805 0 0 0.00 1132.82 0 0
## material servicio deposito prest_terc pago_tarje deudas balance
## 257800 0 0 0 0 978.26 0 0.00
## 257801 0 0 0 0 0.00 0 1132.82
## 257802 0 0 0 0 0.00 0 1132.82
## 257803 0 0 0 0 0.00 0 1132.82
## 257804 0 0 0 0 0.00 0 1132.82
## 257805 0 0 0 0 0.00 0 1132.82
## otras_erog smg numren parentesco sexo edad madre_hog madre_id
## 257800 0 6573.6 03 301 2 10 2 <NA>
## 257801 0 6573.6 01 101 1 62 2 <NA>
## 257802 0 6573.6 02 201 2 42 2 <NA>
## 257803 0 6573.6 03 303 2 24 1 &
## 257804 0 6573.6 04 303 1 19 1 02
## 257805 0 6573.6 05 609 2 3 1 03
## padre_hog padre_id disc1 disc2 disc3 disc4 disc5 disc6 disc7 causa1
## 257800 1 01 8 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 2 <NA> 8 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 2 <NA> 8 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257803 2 <NA> 8 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 2 <NA> 8 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 2 <NA> 8 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## causa2 causa3 causa4 causa5 causa6 causa7 hablaind lenguaind
## 257800 <NA> <NA> <NA> <NA> <NA> <NA> 2 <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA> 2 <NA>
## 257802 <NA> <NA> <NA> <NA> <NA> <NA> 2 <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA> 2 <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA> 2 <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA> 2 <NA>
## hablaesp comprenind etnia alfabetism asis_esc nivel grado tipoesc
## 257800 <NA> 2 2 1 1 06 5 1
## 257801 <NA> 2 2 1 2 <NA> <NA> <NA>
## 257802 <NA> 2 2 1 2 <NA> <NA> <NA>
## 257803 <NA> 2 2 1 2 <NA> <NA> <NA>
## 257804 <NA> 2 2 1 2 <NA> <NA> <NA>
## 257805 <NA> 2 2 2 1 01 1 1
## tiene_b otorg_b forma_b tiene_c otorg_c forma_c nivelaprob
## 257800 2 <NA> <NA> <NA> <NA> <NA> 2
## 257801 <NA> <NA> <NA> <NA> <NA> <NA> 3
## 257802 <NA> <NA> <NA> <NA> <NA> <NA> 3
## 257803 <NA> <NA> <NA> <NA> <NA> <NA> 2
## 257804 <NA> <NA> <NA> <NA> <NA> <NA> 4
## 257805 2 <NA> <NA> <NA> <NA> <NA> 0
## gradoaprob antec_esc residencia edo_conyug pareja_hog conyuge_id
## 257800 4 <NA> 32 <NA> <NA> <NA>
## 257801 2 <NA> 32 2 1 02
## 257802 3 <NA> 32 2 1 01
## 257803 3 <NA> 32 6 <NA> <NA>
## 257804 3 <NA> 32 6 <NA> <NA>
## 257805 0 <NA> <NA> <NA> <NA> <NA>
## segsoc ss_aa ss_mm redsoc_1 redsoc_2 redsoc_3 redsoc_4 redsoc_5
## 257800 <NA> NA NA <NA> <NA> <NA> <NA> <NA>
## 257801 2 NA NA 2 3 2 3 2
## 257802 2 NA NA 2 3 2 2 3
## 257803 2 NA NA 2 3 2 3 3
## 257804 2 NA NA <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> NA NA <NA> <NA> <NA> <NA> <NA>
## redsoc_6 hor_1 min_1 usotiempo1 hor_2 min_2 usotiempo2 hor_3 min_3
## 257800 <NA> NA NA <NA> NA NA <NA> NA NA
## 257801 2 30 0 <NA> NA NA 9 NA NA
## 257802 2 7 0 <NA> NA NA 9 NA NA
## 257803 3 NA NA 9 NA NA 9 NA NA
## 257804 <NA> NA NA <NA> NA NA <NA> NA NA
## 257805 <NA> NA NA <NA> NA NA <NA> NA NA
## usotiempo3 hor_4 min_4 usotiempo4 hor_5 min_5 usotiempo5 hor_6
## 257800 <NA> NA NA <NA> NA NA <NA> NA
## 257801 9 NA NA 9 NA NA 9 NA
## 257802 9 NA NA 9 NA NA 9 20
## 257803 9 NA NA 9 NA NA 9 20
## 257804 <NA> NA NA <NA> NA NA <NA> NA
## 257805 <NA> NA NA <NA> NA NA <NA> NA
## min_6 usotiempo6 hor_7 min_7 usotiempo7 hor_8 min_8 usotiempo8
## 257800 NA <NA> NA NA <NA> NA <NA> <NA>
## 257801 NA 9 NA NA 9 20 00 <NA>
## 257802 0 <NA> NA NA 9 45 00 <NA>
## 257803 0 <NA> NA NA 9 50 00 <NA>
## 257804 NA <NA> NA NA <NA> NA <NA> <NA>
## 257805 NA <NA> NA NA <NA> NA <NA> <NA>
## segpop atemed inst_1 inst_2 inst_3 inst_4 inst_5 inst_6 inscr_1
## 257800 1 1 <NA> <NA> 3 <NA> <NA> <NA> <NA>
## 257801 1 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 1 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257803 1 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 1 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 1 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## inscr_2 inscr_3 inscr_4 inscr_5 inscr_6 inscr_7 inscr_8 prob_anio
## 257800 <NA> 3 <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 <NA> <NA> <NA> <NA> <NA> <NA> <NA> 2014
## 257803 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## prob_mes prob_sal aten_sal servmed_1 servmed_2 servmed_3 servmed_4
## 257800 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 05 1 1 <NA> 02 <NA> <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## servmed_5 servmed_6 servmed_7 servmed_8 servmed_9 servmed_10
## 257800 <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 <NA> <NA> <NA> <NA> <NA> <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA>
## servmed_11 hh_lug mm_lug hh_esp mm_esp pagoaten_1 pagoaten_2
## 257800 <NA> NA NA NA NA <NA> <NA>
## 257801 <NA> NA NA NA NA <NA> <NA>
## 257802 <NA> 0 45 0 15 <NA> <NA>
## 257803 <NA> NA NA NA NA <NA> <NA>
## 257804 <NA> NA NA NA NA <NA> <NA>
## 257805 <NA> NA NA NA NA <NA> <NA>
## pagoaten_3 pagoaten_4 pagoaten_5 pagoaten_6 pagoaten_7 noatenc_1
## 257800 <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 <NA> <NA> <NA> <NA> 7 <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA>
## noatenc_2 noatenc_3 noatenc_4 noatenc_5 noatenc_6 noatenc_7
## 257800 <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 <NA> <NA> <NA> <NA> <NA> <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA>
## noatenc_8 noatenc_9 noatenc_10 noatenc_11 noatenc_12 noatenc_13
## 257800 <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 <NA> <NA> <NA> <NA> <NA> <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA>
## noatenc_14 noatenc_15 noatenc_16 norecib_1 norecib_2 norecib_3
## 257800 <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 <NA> <NA> <NA> <NA> <NA> <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA>
## norecib_4 norecib_5 norecib_6 norecib_7 norecib_8 norecib_9
## 257800 <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 <NA> <NA> <NA> <NA> <NA> <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA>
## norecib_10 norecib_11 razon_1 razon_2 razon_3 razon_4 razon_5
## 257800 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257802 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257803 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257804 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## razon_6 razon_7 razon_8 razon_9 razon_10 razon_11 diabetes
## 257800 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> <NA> <NA> <NA> 2
## 257802 <NA> <NA> <NA> <NA> <NA> <NA> 1
## 257803 <NA> <NA> <NA> <NA> <NA> <NA> 1
## 257804 <NA> <NA> <NA> <NA> <NA> <NA> 2
## 257805 <NA> <NA> <NA> <NA> <NA> <NA> <NA>
## pres_alta peso segvol_1 segvol_2 segvol_3 segvol_4 segvol_5
## 257800 <NA> 2 <NA> <NA> <NA> <NA> <NA>
## 257801 2 2 <NA> <NA> <NA> <NA> <NA>
## 257802 1 1 <NA> <NA> <NA> <NA> <NA>
## 257803 1 1 <NA> <NA> <NA> <NA> <NA>
## 257804 2 2 <NA> <NA> <NA> <NA> <NA>
## 257805 <NA> 1 <NA> <NA> <NA> <NA> <NA>
## segvol_6 segvol_7 hijos_viv hijos_mue hijos_sob trabajo_mp
## 257800 <NA> <NA> NA NA NA <NA>
## 257801 6 <NA> NA NA NA 1
## 257802 6 <NA> 3 0 3 1
## 257803 6 <NA> 1 0 1 2
## 257804 6 <NA> NA NA NA 1
## 257805 <NA> <NA> NA NA NA <NA>
## motivo_aus act_pnea1 act_pnea2 num_trabaj
## 257800 <NA> <NA> <NA> <NA>
## 257801 <NA> <NA> <NA> 1
## 257802 <NA> <NA> <NA> 1
## 257803 <NA> 3 <NA> <NA>
## 257804 <NA> <NA> <NA> 2
## 257805 <NA> <NA> <NA> <NA>
Hagamos un tabulado, por ejemplo cómo se distribuye la población según el hogar del jefe
table(merge_data2$sexo, merge_data2$sexo_jefe)
##
## Hombre Mujer
## 1 104352 21613
## 2 94954 36886
Para visualizar mejor esta tabla, podemos agregar el comando “addmargins”, con esto nos sumariza. Como R está más desarrollado para hacer matrices, no nos da los totales, pero siempre los podemos agregar.
addmargins(table(merge_data2$sexo, merge_data2$sexo_jefe))
##
## Hombre Mujer Sum
## 1 104352 21613 125965
## 2 94954 36886 131840
## Sum 199306 58499 257805
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 trabajos sólo la llenan los mayores de 12 años, en la ENIGH. Vamos a pegar esta base a la base de población.
Cargamos la base de trabajos.
Sólo nos vamos a quedar con el trabajo principal, para que sea un renglón por persona. Porque en esta base hay información de más de un trabajo.
enigh_trabajo_total <- read.dbf("trabajos.dbf")
enigh_trabajo <- enigh_trabajo_total[enigh_trabajo_total$id_trabajo==1,]
dim(enigh_trabajo)
## [1] 120245 55
Vamos a hacer el primer tipo de merge
merge_data3<-merge(enigh_pobla,enigh_trabajo, by=c("folioviv", "foliohog", "numren"))
dim(merge_data3)
## [1] 120245 230
¡La base nueva no tiene a toda la población, solo la que tiene en la base más pequeña! Tenemos sólo 120,245 personas.
En realidad hay tres formas de hacer un merge
A. Casos comunes en las dos bases
Por default, el comando tiene activado la opción “all = TRUE”, que nos deja los datos comunes a ambas bases.
merge_data3<-merge(enigh_pobla,enigh_trabajo, by=c("folioviv", "foliohog", "numren"), all = TRUE)
B. 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(enigh_pobla,enigh_trabajo, by=c("folioviv", "foliohog", "numren"), all.x = TRUE)
dim(merge_data3)
## [1] 257805 230
C. 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(enigh_pobla,enigh_trabajo, by=c("folioviv", "foliohog", "numren"), all.y = TRUE)
dim(merge_data3)
## [1] 120245 230