AE
25/01/2019
Vamos a cargar la base de hogares de la ENVIPE con la que hemos estado trabajando.
¡Recuerda, poner el directorio!
setwd("/Users/anaescoto/Dropbox/SFP")
install.packages("foreign", repos = "http://cran.us.r-project.org", dependencies = TRUE)##
## The downloaded binary packages are in
## /var/folders/fr/mw1x21js54367mjdhqsjfwqm0000gn/T//Rtmprwivlw/downloaded_packages
library(foreign)
TPer_Vic1 <- read.dbf("TPer_Vic1_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 ENVIPE-2018, 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" del Curso)
TVivienda<- read.dbf("TVivienda.dbf")
dim(TVivienda)## [1] 89572 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 "ID_VIV"
THogar <- read.dbf("THogar.dbf")
dim(THogar)## [1] 91664 18
merge_data<- merge(TVivienda, THogar, by="ID_VIV")Revisemos la base creada
names(merge_data)## [1] "ID_VIV" "UPM.x" "VIV_SEL.x" "AREAM" "CVE_ENT.x"
## [6] "NOM_ENT.x" "CVE_MUN.x" "NOM_MUN.x" "RESULT_V" "AP1_1"
## [11] "AP1_2" "AP2_1" "AP2_2" "AP2_3" "NAP2_3"
## [16] "FAC_VIV" "FAC_VIV_AM" "DOMINIO.x" "EST_DIS.x" "UPM_DIS.x"
## [21] "ID_HOG" "UPM.y" "VIV_SEL.y" "HOGAR" "RESUL_H"
## [26] "N_INF" "R_SEL" "CVE_ENT.y" "NOM_ENT.y" "CVE_MUN.y"
## [31] "NOM_MUN.y" "TOT_PER" "FAC_HOG" "FAC_HOG_AM" "DOMINIO.y"
## [36] "EST_DIS.y" "UPM_DIS.y"
dim(merge_data)## [1] 91664 37
¿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$CVE_ENT.x, merge_data$CVE_ENT.y)##
## 01 02 03 04 05 06 07 08 09 10 11 12 13 14
## 01 1798 0 0 0 0 0 0 0 0 0 0 0 0 0
## 02 0 2600 0 0 0 0 0 0 0 0 0 0 0 0
## 03 0 0 2694 0 0 0 0 0 0 0 0 0 0 0
## 04 0 0 0 2259 0 0 0 0 0 0 0 0 0 0
## 05 0 0 0 0 2646 0 0 0 0 0 0 0 0 0
## 06 0 0 0 0 0 3120 0 0 0 0 0 0 0 0
## 07 0 0 0 0 0 0 3657 0 0 0 0 0 0 0
## 08 0 0 0 0 0 0 0 3365 0 0 0 0 0 0
## 09 0 0 0 0 0 0 0 0 5696 0 0 0 0 0
## 10 0 0 0 0 0 0 0 0 0 2920 0 0 0 0
## 11 0 0 0 0 0 0 0 0 0 0 2425 0 0 0
## 12 0 0 0 0 0 0 0 0 0 0 0 2523 0 0
## 13 0 0 0 0 0 0 0 0 0 0 0 0 2644 0
## 14 0 0 0 0 0 0 0 0 0 0 0 0 0 2726
## 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0
##
## 15 16 17 18 19 20 21 22 23 24 25 26 27 28
## 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 02 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 03 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 04 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 05 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 06 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 07 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 08 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 09 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 15 2637 0 0 0 0 0 0 0 0 0 0 0 0 0
## 16 0 3805 0 0 0 0 0 0 0 0 0 0 0 0
## 17 0 0 2657 0 0 0 0 0 0 0 0 0 0 0
## 18 0 0 0 1856 0 0 0 0 0 0 0 0 0 0
## 19 0 0 0 0 2723 0 0 0 0 0 0 0 0 0
## 20 0 0 0 0 0 2838 0 0 0 0 0 0 0 0
## 21 0 0 0 0 0 0 3609 0 0 0 0 0 0 0
## 22 0 0 0 0 0 0 0 2764 0 0 0 0 0 0
## 23 0 0 0 0 0 0 0 0 2597 0 0 0 0 0
## 24 0 0 0 0 0 0 0 0 0 1817 0 0 0 0
## 25 0 0 0 0 0 0 0 0 0 0 3714 0 0 0
## 26 0 0 0 0 0 0 0 0 0 0 0 1820 0 0
## 27 0 0 0 0 0 0 0 0 0 0 0 0 3154 0
## 28 0 0 0 0 0 0 0 0 0 0 0 0 0 3753
## 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0
##
## 29 30 31 32
## 01 0 0 0 0
## 02 0 0 0 0
## 03 0 0 0 0
## 04 0 0 0 0
## 05 0 0 0 0
## 06 0 0 0 0
## 07 0 0 0 0
## 08 0 0 0 0
## 09 0 0 0 0
## 10 0 0 0 0
## 11 0 0 0 0
## 12 0 0 0 0
## 13 0 0 0 0
## 14 0 0 0 0
## 15 0 0 0 0
## 16 0 0 0 0
## 17 0 0 0 0
## 18 0 0 0 0
## 19 0 0 0 0
## 20 0 0 0 0
## 21 0 0 0 0
## 22 0 0 0 0
## 23 0 0 0 0
## 24 0 0 0 0
## 25 0 0 0 0
## 26 0 0 0 0
## 27 0 0 0 0
## 28 0 0 0 0
## 29 2307 0 0 0
## 30 0 3578 0 0
## 31 0 0 3118 0
## 32 0 0 0 1844
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 91,541 personas entrevistadas en el módulo, en 91,664 hogares en 89,572 viviendas
Tal como está en la documentación de la ENVIPE (https://www.inegi.org.mx/contenidos/programas/envipe/2017/doc/fd_envipe2017.pdf), el id o llave única de las bases son las siguientes
Hogares {hogares} es "ID_VIV" "HOGAR" Selección {individuos} es "ID_VIV" "HOGAR" "R_SEL"
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(THogar, TPer_Vic1, by=c("ID_VIV","HOGAR"))
dim(merge_data2)## [1] 91541 204
Revisemos la base
str(merge_data2)## 'data.frame': 91541 obs. of 204 variables:
## $ ID_VIV : Factor w/ 89572 levels "0100008.01","0100008.02",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ HOGAR : Factor w/ 6 levels "01","02","03",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ ID_HOG.x : Factor w/ 91664 levels "0100008.01.01",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ UPM.x : Factor w/ 13191 levels "0100008","0100022",..: 1 1 1 1 2 2 2 2 3 3 ...
## $ VIV_SEL.x : Factor w/ 26 levels "01","02","03",..: 1 2 4 5 2 3 4 5 1 3 ...
## $ RESUL_H.x : Factor w/ 4 levels "A","B","C","D": 2 2 2 2 1 1 2 1 2 1 ...
## $ N_INF : Factor w/ 16 levels "01","02","03",..: 2 1 1 1 1 1 1 5 2 2 ...
## $ R_SEL.x : Factor w/ 15 levels "01","02","03",..: 4 1 2 1 1 2 2 1 2 1 ...
## $ CVE_ENT.x : Factor w/ 32 levels "01","02","03",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ NOM_ENT.x : Factor w/ 32 levels "Aguascalientes",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ CVE_MUN.x : Factor w/ 242 levels "001","002","003",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ NOM_MUN.x : Factor w/ 1078 levels "Abalá","Abasolo",..: 23 23 23 23 23 23 23 23 23 23 ...
## $ TOT_PER : Factor w/ 20 levels "01","02","03",..: 4 1 2 3 2 3 2 5 4 3 ...
## $ FAC_HOG.x : Factor w/ 1376 levels "000000","000031",..: 183 183 183 183 172 172 172 172 186 186 ...
## $ FAC_HOG_AM.x: Factor w/ 1277 levels "000000","000031",..: 179 179 179 179 168 168 168 168 182 182 ...
## $ DOMINIO.x : Factor w/ 3 levels "C","R","U": 3 3 3 3 3 3 3 3 3 3 ...
## $ EST_DIS.x : Factor w/ 595 levels "001","002","003",..: 3 3 3 3 2 2 2 2 2 2 ...
## $ UPM_DIS.x : Factor w/ 13191 levels "00001","00002",..: 1 1 1 1 2 2 2 2 3 3 ...
## $ ID_HOG.y : Factor w/ 91541 levels "0100008.01.01",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ ID_PER : Factor w/ 91541 levels "0100008.01.01.04",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ UPM.y : Factor w/ 13191 levels "0100008","0100022",..: 1 1 1 1 2 2 2 2 3 3 ...
## $ VIV_SEL.y : Factor w/ 26 levels "01","02","03",..: 1 2 4 5 2 3 4 5 1 3 ...
## $ RESUL_H.y : Factor w/ 2 levels "A","B": 2 2 2 2 1 1 2 1 2 1 ...
## $ R_SEL.y : Factor w/ 15 levels "01","02","03",..: 4 1 2 1 1 2 2 1 2 1 ...
## $ SEXO : Factor w/ 2 levels "Hombre","Mujer": 2 1 1 2 2 1 2 2 2 1 ...
## $ EDAD : num 37 68 25 56 41 39 75 70 60 27 ...
## $ AREAM : Factor w/ 33 levels "01","02","03",..: 13 13 13 13 13 13 13 13 13 13 ...
## $ CVE_ENT.y : Factor w/ 32 levels "01","02","03",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ NOM_ENT.y : Factor w/ 32 levels "Aguascalientes",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ CVE_MUN.y : Factor w/ 242 levels "001","002","003",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ NOM_MUN.y : Factor w/ 1078 levels "Abalá","Abasolo",..: 23 23 23 23 23 23 23 23 23 23 ...
## $ AP4_1 : Factor w/ 4 levels "1","2","3","9": 3 3 3 3 1 3 3 3 3 3 ...
## $ AP4_2_01 : Factor w/ 2 levels "0","1": 1 1 1 2 1 2 2 2 1 1 ...
## $ AP4_2_02 : Factor w/ 2 levels "0","1": 2 2 2 2 2 1 1 1 1 1 ...
## $ AP4_2_03 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 2 2 1 2 ...
## $ AP4_2_04 : Factor w/ 2 levels "0","1": 1 1 2 2 1 1 1 1 2 2 ...
## $ AP4_2_05 : Factor w/ 2 levels "0","1": 1 2 1 1 2 1 2 1 2 1 ...
## $ AP4_2_06 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ AP4_2_07 : Factor w/ 2 levels "0","1": 1 1 1 1 1 2 1 1 2 1 ...
## $ AP4_2_08 : Factor w/ 2 levels "0","1": 1 2 1 1 2 1 1 1 1 1 ...
## $ AP4_2_09 : Factor w/ 2 levels "0","1": 2 1 2 1 1 1 1 2 1 1 ...
## $ AP4_2_10 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ AP4_2_11 : Factor w/ 2 levels "0","1": 2 1 1 1 1 2 1 1 1 2 ...
## $ AP4_2_12 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ AP4_2_99 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ AP4_3_1 : Factor w/ 3 levels "1","2","9": 1 2 1 1 2 2 1 1 2 2 ...
## $ AP4_3_2 : Factor w/ 3 levels "1","2","9": 1 2 1 2 2 2 2 1 2 2 ...
## $ AP4_3_3 : Factor w/ 3 levels "1","2","9": 1 2 1 2 2 2 2 1 2 2 ...
## $ AP4_4_01 : Factor w/ 4 levels "1","2","3","9": 1 2 1 1 2 2 1 1 2 1 ...
## $ AP4_4_02 : Factor w/ 4 levels "1","2","3","9": 3 3 1 2 3 2 3 3 3 1 ...
## $ AP4_4_03 : Factor w/ 4 levels "1","2","3","9": 1 1 1 1 2 2 2 1 1 1 ...
## $ AP4_4_04 : Factor w/ 4 levels "1","2","3","9": 3 3 3 3 3 3 3 3 3 3 ...
## $ AP4_4_05 : Factor w/ 4 levels "1","2","3","9": 1 1 1 2 2 2 2 1 1 1 ...
## $ AP4_4_06 : Factor w/ 4 levels "1","2","3","9": 1 3 1 2 2 2 2 1 3 1 ...
## $ AP4_4_07 : Factor w/ 4 levels "1","2","3","9": 3 3 1 2 2 2 3 3 3 3 ...
## $ AP4_4_08 : Factor w/ 4 levels "1","2","3","9": 2 3 1 2 2 3 3 1 3 3 ...
## $ AP4_4_09 : Factor w/ 4 levels "1","2","3","9": 2 2 3 2 3 2 3 1 1 3 ...
## $ AP4_4_10 : Factor w/ 4 levels "1","2","3","9": 1 3 1 1 2 3 2 1 3 1 ...
## $ AP4_4_11 : Factor w/ 4 levels "1","2","3","9": 1 3 1 1 2 3 2 2 3 1 ...
## $ AP4_4_12 : Factor w/ 4 levels "1","2","3","9": 3 3 3 3 2 2 3 3 3 3 ...
## $ AP4_5_01 : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 2 2 ...
## $ AP4_5_02 : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 1 2 ...
## $ AP4_5_03 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ AP4_5_04 : Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 1 ...
## $ AP4_5_05 : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 1 1 ...
## $ AP4_5_06 : Factor w/ 2 levels "0","1": 2 1 1 1 2 1 1 1 1 2 ...
## $ AP4_5_07 : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 1 1 ...
## $ AP4_5_08 : Factor w/ 2 levels "0","1": 2 1 2 1 1 2 1 1 1 2 ...
## $ AP4_5_09 : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 2 1 1 2 ...
## $ AP4_5_10 : Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 2 ...
## $ AP4_5_11 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ AP4_5_12 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ AP4_5_13 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 2 ...
## $ AP4_5_14 : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 1 2 ...
## $ AP4_5_15 : Factor w/ 2 levels "0","1": 1 1 1 1 2 1 1 1 1 1 ...
## $ AP4_5_16 : Factor w/ 2 levels "0","1": 1 2 1 2 1 1 1 2 1 1 ...
## $ AP4_5_99 : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
## $ AP4_6_1 : Factor w/ 4 levels "1","2","3","9": 2 2 2 1 1 1 1 2 1 1 ...
## $ AP4_6_2 : Factor w/ 4 levels "1","2","3","9": 2 2 2 2 2 1 2 2 2 2 ...
## $ AP4_6_3 : Factor w/ 4 levels "1","2","3","9": 2 2 2 2 1 1 1 2 2 2 ...
## $ AP4_7_1 : Factor w/ 5 levels "1","2","3","4",..: 1 3 2 2 4 3 4 2 3 4 ...
## $ AP4_7_2 : Factor w/ 5 levels "1","2","3","4",..: 1 1 2 2 4 3 4 2 3 4 ...
## $ AP4_7_3 : Factor w/ 5 levels "1","2","3","4",..: 1 1 4 3 4 3 4 5 3 4 ...
## $ AP4_8_1 : Factor w/ 4 levels "1","2","3","9": 2 1 1 1 1 1 2 2 2 2 ...
## $ AP4_9_1 : Factor w/ 3 levels "1","2","9": NA 1 2 2 1 3 NA NA NA NA ...
## $ AP4_8_2 : Factor w/ 4 levels "1","2","3","9": 1 2 1 1 1 1 1 2 1 2 ...
## $ AP4_9_2 : Factor w/ 3 levels "1","2","9": 1 NA 2 2 1 2 2 NA 2 NA ...
## $ AP4_8_3 : Factor w/ 4 levels "1","2","3","9": 1 2 1 1 1 2 2 2 2 2 ...
## $ AP4_9_3 : Factor w/ 3 levels "1","2","9": 2 NA 2 2 2 NA NA NA NA NA ...
## $ AP4_8_4 : Factor w/ 4 levels "1","2","3","9": 2 2 2 2 1 2 2 2 2 1 ...
## $ AP4_9_4 : Factor w/ 3 levels "1","2","9": NA NA NA NA 1 NA NA NA NA 2 ...
## $ AP4_8_5 : Factor w/ 4 levels "1","2","3","9": 2 2 2 1 1 1 1 2 2 1 ...
## $ AP4_9_5 : Factor w/ 3 levels "1","2","9": NA NA NA 2 1 2 2 NA NA 2 ...
## $ AP4_8_6 : Factor w/ 4 levels "1","2","3","9": 2 3 1 3 3 1 3 2 2 3 ...
## $ AP4_9_6 : Factor w/ 3 levels "1","2","9": NA NA 2 NA NA 2 NA NA NA NA ...
## $ AP4_10_01 : Factor w/ 4 levels "1","2","3","9": 2 1 2 2 1 1 2 3 2 2 ...
## $ AP4_10_02 : Factor w/ 4 levels "1","2","3","9": 3 3 3 3 1 1 2 3 3 3 ...
## $ AP4_10_03 : Factor w/ 4 levels "1","2","3","9": 2 1 2 2 1 1 2 3 2 2 ...
## $ AP4_10_04 : Factor w/ 4 levels "1","2","3","9": 2 2 3 2 3 2 2 3 2 2 ...
## [list output truncated]
tail(merge_data2)## ID_VIV HOGAR ID_HOG.x UPM.x VIV_SEL.x RESUL_H.x N_INF
## 91536 3260801.12 01 3260801.12.01 3260801 12 B 01
## 91537 3260801.13 01 3260801.13.01 3260801 13 B 02
## 91538 3260801.15 01 3260801.15.01 3260801 15 A 01
## 91539 3260801.16 01 3260801.16.01 3260801 16 A 01
## 91540 3260801.17 01 3260801.17.01 3260801 17 B 02
## 91541 3260801.19 01 3260801.19.01 3260801 19 B 02
## R_SEL.x CVE_ENT.x NOM_ENT.x CVE_MUN.x NOM_MUN.x TOT_PER
## 91536 02 32 Zacatecas 058 Santa María de la Paz 02
## 91537 01 32 Zacatecas 058 Santa María de la Paz 05
## 91538 02 32 Zacatecas 058 Santa María de la Paz 02
## 91539 01 32 Zacatecas 058 Santa María de la Paz 01
## 91540 01 32 Zacatecas 058 Santa María de la Paz 02
## 91541 02 32 Zacatecas 058 Santa María de la Paz 03
## FAC_HOG.x FAC_HOG_AM.x DOMINIO.x EST_DIS.x UPM_DIS.x ID_HOG.y
## 91536 000199 <NA> R 595 13208 3260801.12.01
## 91537 000199 <NA> R 595 13208 3260801.13.01
## 91538 000199 <NA> R 595 13208 3260801.15.01
## 91539 000199 <NA> R 595 13208 3260801.16.01
## 91540 000199 <NA> R 595 13208 3260801.17.01
## 91541 000199 <NA> R 595 13208 3260801.19.01
## ID_PER UPM.y VIV_SEL.y RESUL_H.y R_SEL.y SEXO EDAD
## 91536 3260801.12.01.02 3260801 12 B 02 Hombre 25
## 91537 3260801.13.01.01 3260801 13 B 01 Hombre 35
## 91538 3260801.15.01.02 3260801 15 A 02 Mujer 65
## 91539 3260801.16.01.01 3260801 16 A 01 Mujer 61
## 91540 3260801.17.01.01 3260801 17 B 01 Hombre 60
## 91541 3260801.19.01.02 3260801 19 B 02 Mujer 70
## AREAM CVE_ENT.y NOM_ENT.y CVE_MUN.y NOM_MUN.y AP4_1
## 91536 <NA> 32 Zacatecas 058 Santa María de la Paz 3
## 91537 <NA> 32 Zacatecas 058 Santa María de la Paz 3
## 91538 <NA> 32 Zacatecas 058 Santa María de la Paz 3
## 91539 <NA> 32 Zacatecas 058 Santa María de la Paz 3
## 91540 <NA> 32 Zacatecas 058 Santa María de la Paz 3
## 91541 <NA> 32 Zacatecas 058 Santa María de la Paz 3
## AP4_2_01 AP4_2_02 AP4_2_03 AP4_2_04 AP4_2_05 AP4_2_06 AP4_2_07
## 91536 0 0 0 1 0 0 0
## 91537 1 1 0 0 0 0 0
## 91538 1 1 0 0 0 0 0
## 91539 0 0 0 1 1 0 0
## 91540 0 0 0 1 1 0 0
## 91541 0 0 0 1 0 0 0
## AP4_2_08 AP4_2_09 AP4_2_10 AP4_2_11 AP4_2_12 AP4_2_99 AP4_3_1
## 91536 1 0 0 1 0 0 1
## 91537 0 1 0 0 0 0 1
## 91538 0 0 1 0 0 0 2
## 91539 0 1 0 0 0 0 2
## 91540 0 1 0 0 0 0 2
## 91541 0 0 1 1 0 0 1
## AP4_3_2 AP4_3_3 AP4_4_01 AP4_4_02 AP4_4_03 AP4_4_04 AP4_4_05
## 91536 1 1 1 1 1 3 3
## 91537 1 2 1 1 1 3 3
## 91538 2 2 2 3 2 3 2
## 91539 2 2 1 2 2 3 1
## 91540 2 2 1 1 1 3 2
## 91541 1 2 1 3 1 3 3
## AP4_4_06 AP4_4_07 AP4_4_08 AP4_4_09 AP4_4_10 AP4_4_11 AP4_4_12
## 91536 3 1 1 1 1 1 1
## 91537 3 3 3 1 1 2 1
## 91538 3 2 2 2 2 2 3
## 91539 3 1 1 1 1 1 1
## 91540 3 2 2 3 1 1 3
## 91541 3 3 3 1 3 2 3
## AP4_5_01 AP4_5_02 AP4_5_03 AP4_5_04 AP4_5_05 AP4_5_06 AP4_5_07
## 91536 1 0 0 0 0 0 0
## 91537 1 0 1 0 1 0 0
## 91538 1 0 1 0 1 0 0
## 91539 1 0 0 0 1 0 0
## 91540 1 0 0 0 0 0 0
## 91541 0 0 0 0 0 0 0
## AP4_5_08 AP4_5_09 AP4_5_10 AP4_5_11 AP4_5_12 AP4_5_13 AP4_5_14
## 91536 0 0 0 0 0 0 0
## 91537 1 1 0 0 0 0 0
## 91538 1 0 1 0 0 1 1
## 91539 0 1 0 0 0 0 0
## 91540 1 1 1 0 1 1 0
## 91541 0 0 0 0 0 0 0
## AP4_5_15 AP4_5_16 AP4_5_99 AP4_6_1 AP4_6_2 AP4_6_3 AP4_7_1 AP4_7_2
## 91536 1 0 0 2 1 1 2 3
## 91537 1 0 0 2 2 2 2 3
## 91538 0 0 0 9 9 9 4 4
## 91539 0 0 0 2 2 2 3 4
## 91540 0 0 0 1 2 1 3 4
## 91541 0 1 0 2 2 2 9 9
## AP4_7_3 AP4_8_1 AP4_9_1 AP4_8_2 AP4_9_2 AP4_8_3 AP4_9_3 AP4_8_4
## 91536 3 2 <NA> 2 <NA> 2 <NA> 2
## 91537 3 2 <NA> 2 <NA> 2 <NA> 2
## 91538 4 1 2 2 <NA> 2 <NA> 2
## 91539 4 2 <NA> 2 <NA> 1 2 2
## 91540 4 2 <NA> 2 <NA> 2 <NA> 2
## 91541 9 2 <NA> 2 <NA> 2 <NA> 2
## AP4_9_4 AP4_8_5 AP4_9_5 AP4_8_6 AP4_9_6 AP4_10_01 AP4_10_02
## 91536 <NA> 1 2 2 <NA> 1 3
## 91537 <NA> 2 <NA> 2 <NA> 2 1
## 91538 <NA> 2 <NA> 2 <NA> 2 3
## 91539 <NA> 1 2 2 <NA> 1 3
## 91540 <NA> 2 <NA> 2 <NA> 2 3
## 91541 <NA> 2 <NA> 2 <NA> 2 3
## AP4_10_03 AP4_10_04 AP4_10_05 AP4_10_06 AP4_10_07 AP4_10_08
## 91536 2 3 3 2 3 3
## 91537 2 3 2 2 3 3
## 91538 2 2 2 2 3 3
## 91539 2 2 2 1 3 3
## 91540 1 2 2 1 3 3
## 91541 2 3 2 2 3 3
## AP4_10_09 AP4_10_10 AP4_10_11 AP4_10_12 AP4_10_13 AP4_10_14
## 91536 2 3 2 3 3 3
## 91537 2 3 2 3 2 3
## 91538 2 3 3 3 3 3
## 91539 2 1 2 2 3 2
## 91540 1 3 1 3 3 2
## 91541 2 3 3 3 3 3
## AP4_10_15 AP4_11_01 AP4_11_02 AP4_11_03 AP4_11_04 AP4_11_05
## 91536 2 2 2 2 2 2
## 91537 2 2 2 2 2 2
## 91538 2 2 2 2 2 2
## 91539 2 1 1 1 1 2
## 91540 2 2 2 2 2 2
## 91541 3 2 2 2 2 2
## AP4_11_06 AP4_11_07 AP4_11_08 AP4_11_09 AP4_11_10 AP4_11_11 AP4_12
## 91536 2 2 2 2 2 9 <NA>
## 91537 2 2 2 2 2 9 <NA>
## 91538 2 2 2 2 2 9 <NA>
## 91539 1 2 2 2 2 9 0005500
## 91540 2 2 2 2 2 9 <NA>
## 91541 2 2 2 2 2 9 <NA>
## AP5_1_01 AP5_1_02 AP5_1_03 AP5_1_04 AP5_1_05 AP5_1_06 AP5_1_07
## 91536 1 1 1 2 1 3 3
## 91537 1 1 1 1 1 3 3
## 91538 1 1 3 3 3 3 3
## 91539 1 1 1 1 1 3 3
## 91540 1 3 3 1 3 2 2
## 91541 2 2 1 2 2 3 3
## AP5_1_08 AP5_1_09 AP5_1_10 AP5_1_11 AP5_1_12 AP5_1_13 AP5_2_1
## 91536 3 2 2 2 2 9 2
## 91537 3 1 1 1 1 3 2
## 91538 1 3 3 3 3 9 3
## 91539 1 1 3 3 3 9 1
## 91540 2 2 2 3 3 9 3
## 91541 2 2 2 2 2 9 2
## AP5_2_2 AP5_2_3 AP5_2_4 AP5_3_01 AP5_4_01 AP5_4_01_C AP5_5_01
## 91536 1 2 2 2 <NA> <NA> <NA>
## 91537 1 1 1 2 <NA> <NA> <NA>
## 91538 5 1 5 2 <NA> <NA> <NA>
## 91539 5 1 1 2 <NA> <NA> <NA>
## 91540 5 1 1 2 <NA> <NA> <NA>
## 91541 5 2 5 2 <NA> <NA> <NA>
## AP5_6_01 AP5_7_1 AP5_3_02 AP5_4_02 AP5_4_02_C AP5_5_02 AP5_6_02
## 91536 <NA> <NA> 1 2 3 2 2
## 91537 <NA> <NA> 1 1 1 2 1
## 91538 <NA> <NA> 1 2 4 2 4
## 91539 <NA> <NA> 1 2 1 2 2
## 91540 <NA> <NA> 1 2 2 2 2
## 91541 <NA> <NA> 2 <NA> <NA> <NA> <NA>
## AP5_7_2 AP5_3_03 AP5_4_03 AP5_4_03_C AP5_5_03 AP5_6_03 AP5_7_3
## 91536 2 1 1 3 2 1 1
## 91537 1 1 2 3 2 2 1
## 91538 2 2 <NA> <NA> <NA> <NA> <NA>
## 91539 1 2 <NA> <NA> <NA> <NA> <NA>
## 91540 1 2 <NA> <NA> <NA> <NA> <NA>
## 91541 <NA> 2 <NA> <NA> <NA> <NA> <NA>
## AP5_3_04 AP5_4_04 AP5_4_04_C AP5_5_04 AP5_6_04 AP5_7_4 AP5_3_05
## 91536 1 1 1 2 1 1 1
## 91537 1 2 2 2 2 1 1
## 91538 2 <NA> <NA> <NA> <NA> <NA> 2
## 91539 2 <NA> <NA> <NA> <NA> <NA> 1
## 91540 2 <NA> <NA> <NA> <NA> <NA> 2
## 91541 2 <NA> <NA> <NA> <NA> <NA> 2
## AP5_4_05 AP5_4_05_C AP5_5_05 AP5_6_05 AP5_3_06 AP5_4_06 AP5_4_06_C
## 91536 1 1 2 1 2 <NA> <NA>
## 91537 2 3 2 2 1 2 2
## 91538 <NA> <NA> <NA> <NA> 2 <NA> <NA>
## 91539 9 2 2 2 1 2 2
## 91540 <NA> <NA> <NA> <NA> 2 <NA> <NA>
## 91541 <NA> <NA> <NA> <NA> 2 <NA> <NA>
## AP5_5_06 AP5_6_06 AP5_3_07 AP5_4_07 AP5_4_07_C AP5_5_07 AP5_6_07
## 91536 <NA> <NA> 2 <NA> <NA> <NA> <NA>
## 91537 2 2 1 2 2 2 2
## 91538 <NA> <NA> 2 <NA> <NA> <NA> <NA>
## 91539 2 2 2 <NA> <NA> <NA> <NA>
## 91540 <NA> <NA> 2 <NA> <NA> <NA> <NA>
## 91541 <NA> <NA> 2 <NA> <NA> <NA> <NA>
## AP5_3_08 AP5_4_08 AP5_4_08_C AP5_5_08 AP5_6_08 AP5_3_09 AP5_4_09
## 91536 1 1 1 2 1 1 1
## 91537 1 1 1 2 1 1 1
## 91538 1 1 1 2 1 2 <NA>
## 91539 1 1 1 2 1 2 <NA>
## 91540 2 <NA> <NA> <NA> <NA> 2 <NA>
## 91541 2 <NA> <NA> <NA> <NA> 2 <NA>
## AP5_4_09_C AP5_5_09 AP5_6_09 AP5_3_10 AP5_4_10 AP5_4_10_C AP5_5_10
## 91536 9 2 1 2 <NA> <NA> <NA>
## 91537 1 2 1 1 2 2 2
## 91538 <NA> <NA> <NA> 2 <NA> <NA> <NA>
## 91539 <NA> <NA> <NA> 2 <NA> <NA> <NA>
## 91540 <NA> <NA> <NA> 2 <NA> <NA> <NA>
## 91541 <NA> <NA> <NA> 2 <NA> <NA> <NA>
## AP5_6_10 AP5_8 FAC_HOG.y FAC_ELE FAC_HOG_AM.y FAC_ELE_AM DOMINIO.y
## 91536 <NA> 3 000199 355 <NA> <NA> R
## 91537 2 4 000199 355 <NA> <NA> R
## 91538 <NA> 4 000199 355 <NA> <NA> R
## 91539 <NA> 3 000199 155 <NA> <NA> R
## 91540 <NA> 4 000199 355 <NA> <NA> R
## 91541 <NA> 9 000199 554 <NA> <NA> R
## ESTRATO EST_DIS.y UPM_DIS.y seguridad_ gasto_seg
## 91536 2 595 13208 Seguro NA
## 91537 2 595 13208 Seguro NA
## 91538 2 595 13208 Inseguro NA
## 91539 2 595 13208 Seguro 5500
## 91540 2 595 13208 Seguro NA
## 91541 2 595 13208 Seguro NA
Hagamos un tabulado, por ejemplo cómo se distribuye la población según el hogar del jefe
table(merge_data2$TOT_PER,merge_data2$SEXO)##
## Hombre Mujer
## 01 6273 5028
## 02 7412 9492
## 03 8031 10325
## 04 9363 11020
## 05 6132 7309
## 06 2763 3229
## 07 1170 1463
## 08 566 687
## 09 271 337
## 10 141 187
## 11 79 87
## 12 46 41
## 13 21 23
## 14 7 9
## 15 9 5
## 16 3 2
## 17 3 2
## 19 2 1
## 22 1 0
## 23 0 1
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$TOT_PER,merge_data2$SEXO))##
## Hombre Mujer Sum
## 01 6273 5028 11301
## 02 7412 9492 16904
## 03 8031 10325 18356
## 04 9363 11020 20383
## 05 6132 7309 13441
## 06 2763 3229 5992
## 07 1170 1463 2633
## 08 566 687 1253
## 09 271 337 608
## 10 141 187 328
## 11 79 87 166
## 12 46 41 87
## 13 21 23 44
## 14 7 9 16
## 15 9 5 14
## 16 3 2 5
## 17 3 2 5
## 19 2 1 3
## 22 1 0 1
## 23 0 1 1
## Sum 42293 49248 91541
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 VICTIMIZACION sólo la llenan los que lo han sufrido.
Cargamos la base de delitos. Nos vamos a quedar con el primer delito, para que sea un renglón por persona. Porque en esta base hay información de más de un delito.
TMod_Vix <- read.dbf("TMod_Vic.dbf")
TMod_Vic <-TMod_Vix[TMod_Vix$ND_TIPO==1,]
dim(TMod_Vic)## [1] 37868 129
Vamos a hacer el primer tipo de merge
merge_data3<-merge(TPer_Vic1,TMod_Vic, by=c("ID_VIV", "HOGAR", "R_SEL"))
dim(merge_data3)## [1] 37868 314
¡La base nueva no tiene a toda la población, solo la que tiene en la base más pequeña! Tenemos sólo 37,868 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(TPer_Vic1,TMod_Vic, by=c("ID_VIV", "HOGAR", "R_SEL"), all = F)
dim(merge_data3)## [1] 37868 314
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(TPer_Vic1,TMod_Vic, by=c("ID_VIV", "HOGAR", "R_SEL"), all = T)
dim(merge_data3)## [1] 102837 314
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(TPer_Vic1,TMod_Vic, by=c("ID_VIV", "HOGAR", "R_SEL"), all.x = TRUE)
dim(merge_data3)## [1] 102837 314
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(TPer_Vic1,TMod_Vic, by=c("ID_VIV", "HOGAR", "R_SEL"), all.y = TRUE)
dim(merge_data3)## [1] 37868 314
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/)