Continuidad categórica de respuestas entre los años Casen 2006-2020

educ. ¿Cuál fue el nivel educacional más alto alcanzado o el nivel educacional actual?.

VE-CC-AJ

DataIntelligence
date: 24-09-2021

1 Introducción

El procedimiento de generación de tablas de contingencia trae problemas si se consideran varios años, pues sus categorías pueden referirse a lo mismo pero contener errores ortográficos o de sintaxis o bien referirse a lo mismo pero con otras palabras.

Lo que nos interesa en un primer momento es:
1. Poder aglutinar categorías que impliquen tendencias en las variables y no detalles.
2. Poder hacer comparaciones entre todos los años en los que exista Casen.

casen_2006 <<- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes/casen_2006_c.rds")
casen_2006 <- mutate_if(casen_2006, is.factor, as.character)
casen_2009 <<- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes/casen_2009_c.rds")
casen_2009 <- mutate_if(casen_2009, is.factor, as.character)
casen_2011 <<- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes/casen_2011_c.rds")
casen_2011 <- mutate_if(casen_2011, is.factor, as.character)
casen_2013 <<- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes/casen_2013_c.rds")
casen_2013 <- mutate_if(casen_2013, is.factor, as.character)
casen_2015 <<- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes/casen_2015_c.rds")
casen_2015 <- mutate_if(casen_2015, is.factor, as.character)
casen_2017 <<- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes/casen_2017_c.rds")
casen_2017 <- mutate_if(casen_2017, is.factor, as.character)
casen_2020 <<- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes/casen_2020_e1.rds")
casen_2020 <- mutate_if(casen_2020, is.factor, as.character)

cod_com <- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes/codigos_comunales_2006-2020.rds") 
names(cod_com)[2] <- "comuna"

Homologación de alfabetismo

casen_2006$E1[casen_2006$E1 == "No sabe /Sin dato"] <- NA

casen_2011$e1[casen_2011$e1 == "Sí, lee y escribe"] <- "Sí"
casen_2011$e1[casen_2011$e1 == "No, sólo lee"] <- "No"
casen_2011$e1[casen_2011$e1 == "No, ninguno"] <- "No"
casen_2011$e1[casen_2011$e1 == "No, sólo escribe"] <- "No"

casen_2013$e1[casen_2013$e1 == "Sí, lee y escribe"] <- "Sí"
casen_2013$e1[casen_2013$e1 == "No, ninguno"] <- "No"
casen_2013$e1[casen_2013$e1 == "No, sólo lee"] <- "No"
casen_2013$e1[casen_2013$e1 == "No, sólo escribe"] <- "No"
casen_2013$e1[casen_2013$e1 == "NS/NR"] <- NA

casen_2015$e1[casen_2015$e1 == "Sí, lee y escribe"] <- "Sí"
casen_2015$e1[casen_2015$e1 == "No, ninguno"] <- "No"
casen_2015$e1[casen_2015$e1 == "No, sólo lee"] <- "No"
casen_2015$e1[casen_2015$e1 == "No, sólo escribe"] <- "No"

casen_2017$e1[casen_2017$e1 == "Sí, lee y escribe"] <- "Sí"
casen_2017$e1[casen_2017$e1 == "No, sólo lee"] <- "No"
casen_2017$e1[casen_2017$e1 == "No, ninguno"] <- "No"
casen_2017$e1[casen_2017$e1 == "No sabe/responde"] <- NA
casen_2017$e1[casen_2017$e1 == "No, sólo escribe"] <- "No"

casen_2020$e1[casen_2020$e1 == 1] <- "Sí"
casen_2020$e1[casen_2020$e1 == 0] <- "No"

Homologación de etnia

fn_etnia <- function(union){
union$Etnia[union$Etnia == "Aimara" ]  <- "Aymara"
union$Etnia[union$Etnia == "No pertenece a ninguno de estos pueblos indígenas" ]  <-  "No pertenece a ningún pueblo indígena" 
union$Etnia[union$Etnia == "Mapuche"]  <- "Mapuche"
union$Etnia[union$Etnia == "Diaguita"]  <- "Diaguita"
union$Etnia[union$Etnia == "Atacameño" ]  <- "Atacameño"
union$Etnia[union$Etnia == "Atacameño (Likan-Antai)" ]  <- "Atacameño"
union$Etnia[union$Etnia == "Atacameño (Likán Antai)" ]  <- "Atacameño"
union$Etnia[union$Etnia == "Atacameño (Likán-Antai)" ]  <- "Atacameño"
union$Etnia[union$Etnia == "Quechua" ]  <- "Quechua"
union$Etnia[union$Etnia == "Yámana o Yagán" ]  <- "Yagán"
union$Etnia[union$Etnia == "Yagan" ]  <- "Yagán"
union$Etnia[union$Etnia == "Yagán (Yámana)" ]  <- "Yagán"
union$Etnia[union$Etnia == "Rapa-Nui o Pascuenses"]  <- "Pascuense"
union$Etnia[union$Etnia == "Rapa-Nui"]  <- "Pascuense"
union$Etnia[union$Etnia == "Rapa Nui (Pascuense)"]  <- "Pascuense"
union$Etnia[union$Etnia == "Rapa Nui"]  <- "Pascuense"
union$Etnia[union$Etnia == "Collas"]  <- "Coya"
union$Etnia[union$Etnia == "Kawashkar o Alacalufes" ]  <- "Alacalufe"
union$Etnia[union$Etnia == "Kawashkar" ]  <- "Alacalufe"
union$Etnia[union$Etnia == "Kawésqar (Alacalufes)" ]  <- "Alacalufe"
union$Etnia[union$Etnia == "Kawésqar" ]  <- "Alacalufe"
union$Etnia[union$Etnia == "Kawaskar" ]  <- "Alacalufe"
union$Etnia[union$Etnia == "Chango" ]  <- "Chango"
union$Etnia[union$Etnia ==  "Sin dato"]  <- NA
union$Etnia[union$Etnia ==  "NS/NR"   ]  <- NA
union$Etnia[union$Etnia == "No sabe/no responde" ]  <- NA 

union <<- union
}

Homologación de migración

for (i in unique(casen_2020$r2_pais_esp)) {
  pais <- gsub("(^[[:space:]]+|[[:space:]]+$)", "", i)
  pais <- tolower(pais)
  casen_2020$r2_pais_esp[casen_2020$r2_pais_esp == i] <- str_to_title(pais) 
} 

casen_2011$r2p_cod[casen_2011$r2p_cod == "No contesta"] <- "NS/NR"
casen_2013$r2_p_cod[casen_2013$r2_p_cod == "No contesta"] <- "NS/NR"
casen_2015$r2espp_cod[casen_2015$r2espp_cod == "No contesta"] <- "NS/NR"
casen_2017$r2_p_cod[casen_2017$r2_p_cod == "No Bien Especificado"] <- "NS/NR"
casen_2017$r2_p_cod[casen_2017$r2_p_cod == "No Responde"] <- "NS/NR"
casen_2020$r2_pais_esp[casen_2020$r2_pais_esp == "No Bien Especificado"] <- "NS/NR"
casen_2020$r2_pais_esp[casen_2020$r2_pais_esp == ""] <- NA

Es éste un buen ejemplo en donde tenemos 58 categorías para cubrir un máximo de 18 en cada año, por lo que debemos construir un marco conceptual que nos permita reducir categorías y homologarlas para tener datos en todos los años y así poder hacer comparaciones.

La pregunta en cuestión es: ¿Cuál fue el nivel educacional más alto alcanzado o el nivel educacional actual?

1.1 Se obtiene el universo de categorías para cada año

1.1.1 2006

ab <- casen_2006
unique_d_2006 <- unique(ab$EDUC)
unique_d_2006
##  [1] "M.HUM. INCOMPLETA"         "M.TEC COMPLETA"           
##  [3] NA                          "BASICA COMPL."            
##  [5] "M.TEC.PROF. INCOMPLETA"    "BASICA INCOM."            
##  [7] "M.HUM. COMPLETA"           "TECNICA  O UNIV. COMPLETA"
##  [9] "TEC. O UNIV.  INCOMPLETA." "SIN EDUC. FORMAL"         
## [11] "SIN DATO"

1.1.2 2009

ab <- casen_2009
unique_d_2009 <- unique(ab$EDUC)
unique_d_2009
##  [1] "Media Humanista Completa"            
##  [2] "Básica Incompleta"                   
##  [3] "Media Humanista Incompleta"          
##  [4] "Básica Completa"                     
##  [5] NA                                    
##  [6] "Media Técnico Completa"              
##  [7] "Técnica o Universitaria Completa"    
##  [8] "Técnica ó Universitaria Incompleta"  
##  [9] "Media Técnico Profesional Incompleta"
## [10] "Sin Educación Formal"

1.1.3 2011

ab <- casen_2011
unique_d_2011 <- unique(ab$educ)
unique_d_2011
## [1] "M. Hum. Completa"                                          
## [2] "Básica Compl."                                             
## [3] "Técnico Nivel Superior o Profesional  Incompleta"          
## [4] "M. Hum. Incompleta"                                        
## [5] "Técnico Nivel Superior o Profesional  Completa y Postgrado"
## [6] "Básica Incom."                                             
## [7] "Sin Educ. Formal"                                          
## [8] "M. Téc Completa"                                           
## [9] "M. Téc. Prof. Incompleta"

1.1.4 2013

ab <- casen_2013
unique_d_2013 <- unique(ab$educ)
unique_d_2013
##  [1] "Básica Compl."                     "M. Téc Completa"                  
##  [3] "M. Hum. Completa"                  "Técnico Nivel Superior Completo"  
##  [5] "Profesional  Incompleto"           "M. Hum. Incompleta"               
##  [7] "Profesional Completo"              "Básica Incom."                    
##  [9] "Sin Educ. Formal"                  "M. Téc. Prof. Incompleta"         
## [11] "Técnico Nivel Superior Incompleta" "Postgrado Completo"               
## [13] "NS/NR"                             "Postgrado Incompleto"

1.1.5 2015

ab <- casen_2015
unique_d_2015 <- unique(ab$educ)
unique_d_2015
##  [1] "M. Hum. Incompleta"                "M. Téc Completa"                  
##  [3] "M. Hum. Completa"                  "Básica Compl."                    
##  [5] "Sin Educ. Formal"                  "Básica Incom."                    
##  [7] "Profesional Completo"              "Técnico Nivel Superior Completo"  
##  [9] "Profesional Incompleto"            "M. Téc. Prof. Incompleta"         
## [11] "Técnico Nivel Superior Incompleta" "Postgrado Completo"               
## [13] "Postgrado Incompleto"              "NS/NR"

1.1.6 2017

ab <- casen_2017
unique_d_2017 <- unique(ab$educ)
unique_d_2017
##  [1] "M. Hum. Completa"                  "Técnico Nivel Superior Completo"  
##  [3] "M. Téc Completa"                   "Básica Incom."                    
##  [5] "Básica Compl."                     "M. Hum. Incompleta"               
##  [7] "Profesional Incompleto"            "Profesional Completo"             
##  [9] "Sin Educ. Formal"                  "Postgrado Completo"               
## [11] "M. Téc. Prof. Incompleta"          "Técnico Nivel Superior Incompleta"
## [13] "Postgrado Incompleto"              "NS/NR"

1.1.7 2020

ab <- casen_2020
unique_d_2020 <- unique(ab$educ)
unique_d_2020
##  [1] "Media humanista completa"            
##  [2] "Sin educación formal"                
##  [3] "Básica incompleta"                   
##  [4] "Técnico nivel superior incompleta"   
##  [5] "No sabe"                             
##  [6] "Técnico nivel superior completo"     
##  [7] "Media técnica profesional incompleta"
##  [8] "Profesional incompleto"              
##  [9] "Media técnica profesional completa"  
## [10] "Profesional completo"                
## [11] "Básica completa"                     
## [12] "Media humanista incompleta"          
## [13] "Postgrado incompleto"                
## [14] "Postgrado completo"

2 Marco conceptual

Construiremos un marco conceptual muy básico sólo a modo de ejemplo.

Agruparemos en 7 categorías independientemente las personas hayan terminado los niveles educativos:

2006 y 2009 no tienen la categoría kinder.

  1. Básica
  2. Media
  3. Técnica o universitaria o postgrado
  4. Postgrado
  5. No tiene ninguna
  6. NA

Se definen 7 categorías.

3 Diccionario

Se unen todas las categorías de respuesta, se excluyen las repetidas y se les asocia un código:

unique_d_2006 <- as.data.frame(unique_d_2006)
colnames(unique_d_2006)[1] <- "superduper"
unique_d_2009 <- as.data.frame(unique_d_2009)
colnames(unique_d_2009)[1] <- "superduper"
unique_d_2011 <- as.data.frame(unique_d_2011)
colnames(unique_d_2011)[1] <- "superduper"
unique_d_2013 <- as.data.frame(unique_d_2013)
colnames(unique_d_2013)[1] <- "superduper"
unique_d_2015 <- as.data.frame(unique_d_2015)
colnames(unique_d_2015)[1] <- "superduper"
unique_d_2017 <- as.data.frame(unique_d_2017)
colnames(unique_d_2017)[1] <- "superduper"
unique_d_2020 <- as.data.frame(unique_d_2020)
colnames(unique_d_2020)[1] <- "superduper"
el_total <- rbind(unique_d_2006, unique_d_2009, unique_d_2011, unique_d_2013, unique_d_2015, unique_d_2017 , unique_d_2020)
el_total_final <- unique(el_total)
el_total_final$observation <- 1:nrow(el_total_final) 





datatable(el_total_final, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
          options = list(dom = 'Bfrtip',
          buttons = list('colvis', list(extend = 'collection',
          buttons = list(
          list(extend='copy'),
          list(extend='excel',
            filename = 'tabla_Diccionario'),
          list(extend='pdf',
            filename= 'tabla_Diccionario')),
          text = 'Download')), scrollX = TRUE))
write_xlsx(el_total_final,"dicc_a-corregir.xlsx")

4 Diccionario corregido

Diccionario_corregido <- read_xlsx("Diccionario_corregido.xlsx")
colnames(Diccionario_corregido)[1] <- "educ"
datatable(Diccionario_corregido, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
          options = list(dom = 'Bfrtip',
          buttons = list('colvis', list(extend = 'collection',
          buttons = list(
          list(extend='copy'),
          list(extend='excel',
            filename = 'tabla_Diccionario'),
          list(extend='pdf',
            filename= 'tabla_Diccionario')),
          text = 'Download')), scrollX = TRUE))
# dataf1 <- data.frame()
# for (n in 1:nrow(el_total_final)) { 
#   dataf1 <- rbind(dataf1,paste0("m['educ'][m['educ'] ==  '",el_total_final[n,1],"']"," <- '",el_total_final[n,2],"'"))
# }
# dataf1 <- as.data.frame(dataf1)
# write_xlsx(dataf1,"el_total_final.xlsx")
# nn <- 1
# la_correccion <- function(m) {
# 
# m['educ'][m['educ'] ==  'M.HUM. INCOMPLETA'] <- '1'
# m['educ'][m['educ'] ==  'M.TEC COMPLETA'] <- '2'
# m['educ'][m['educ'] ==  'NA'] <- '3'
# m['educ'][m['educ'] ==  'BASICA COMPL.'] <- '4'
# m['educ'][m['educ'] ==  'M.TEC.PROF. INCOMPLETA'] <- '5'
# m['educ'][m['educ'] ==  'BASICA INCOM.'] <- '6'
# m['educ'][m['educ'] ==  'M.HUM. COMPLETA'] <- '7'
# m['educ'][m['educ'] ==  'TECNICA  O UNIV. COMPLETA'] <- '8'
# m['educ'][m['educ'] ==  'TEC. O UNIV.  INCOMPLETA.'] <- '9'
# m['educ'][m['educ'] ==  'SIN EDUC. FORMAL'] <- '10'
# m['educ'][m['educ'] ==  'SIN DATO'] <- '11'
# m['educ'][m['educ'] ==  'Media Humanista Completa'] <- '12'
# m['educ'][m['educ'] ==  'Básica Incompleta'] <- '13'
# m['educ'][m['educ'] ==  'Media Humanista Incompleta'] <- '14'
# m['educ'][m['educ'] ==  'Básica Completa'] <- '15'
# m['educ'][m['educ'] ==  'Media Técnico Completa'] <- '16'
# m['educ'][m['educ'] ==  'Técnica o Universitaria Completa'] <- '17'
# m['educ'][m['educ'] ==  'Técnica ó Universitaria Incompleta'] <- '18'
# m['educ'][m['educ'] ==  'Media Técnico Profesional Incompleta'] <- '19'
# m['educ'][m['educ'] ==  'Sin Educación Formal'] <- '20'
# m['educ'][m['educ'] ==  'Humanidades (sistema antiguo)'] <- '21'
# m['educ'][m['educ'] ==  'Primaria/Preparatoria (sistema antiguo)'] <- '22'
# m['educ'][m['educ'] ==  'Profesional'] <- '23'
# m['educ'][m['educ'] ==  'Educación Media Científico-Humanista'] <- '24'
# m['educ'][m['educ'] ==  'Técnico Nivel Superior'] <- '25'
# m['educ'][m['educ'] ==  'Educación Básica'] <- '26'
# m['educ'][m['educ'] ==  'Kinder/Pre-kinder'] <- '27'
# m['educ'][m['educ'] ==  'Postgrado'] <- '28'
# m['educ'][m['educ'] ==  'Educación Media Técnica Profesional'] <- '29'
# m['educ'][m['educ'] ==  'Nunca asistió'] <- '30'
# m['educ'][m['educ'] ==  'Jardín infantil/Sala cuna'] <- '31'
# m['educ'][m['educ'] ==  'Técnica, Comercial, Industrial o Normalista'] <- '32'
# m['educ'][m['educ'] ==  'Educación especial (diferencial)'] <- '33'
# m['educ'][m['educ'] ==  'Técnico Nivel Superior (carreras de 1 a 3 años)'] <- '34'
# m['educ'][m['educ'] ==  'Profesional (carreras de 4 o más años)'] <- '35'
# m['educ'][m['educ'] ==  'Técnica, Comercial, Industrial o Normalista (sistema antiguo)'] <- '36'
# m['educ'][m['educ'] ==  'NS/NR'] <- '37'
# m['educ'][m['educ'] ==  'Primaria o Preparatoria (Sistema Antiguo)'] <- '38'
# m['educ'][m['educ'] ==  'Prekinder / Kinder (Transición menor y Transición Mayor)'] <- '39'
# m['educ'][m['educ'] ==  'Profesional Completo (Carreras 4 ó más años)'] <- '40'
# m['educ'][m['educ'] ==  'Humanidades (Sistema Antiguo)'] <- '41'
# m['educ'][m['educ'] ==  'Técnico Nivel Superior Completo (Carreras 1 a 3 años)'] <- '42'
# m['educ'][m['educ'] ==  'Profesional Incompleto (Carreras 4 ó más años)'] <- '43'
# m['educ'][m['educ'] ==  'Técnica, Comercial, Industrial o Normalista (Sistema Antiguo'] <- '44'
# m['educ'][m['educ'] ==  'Técnico Nivel Superior Incompleto (Carreras 1 a 3 años)'] <- '45'
# m['educ'][m['educ'] ==  'Postgrado Completo'] <- '46'
# m['educ'][m['educ'] ==  'Jardín Infantil (Medio menor y Medio mayor)'] <- '47'
# m['educ'][m['educ'] ==  'Educación Especial (Diferencial)'] <- '48'
# m['educ'][m['educ'] ==  'Sala cuna'] <- '49'
# m['educ'][m['educ'] ==  'Postgrado Incompleto'] <- '50'
# m['educ'][m['educ'] ==  'sin dato'] <- '51'
# m['educ'][m['educ'] ==  'Profesional Incompleto (Carreras 4  o más años)'] <- '52'
# m['educ'][m['educ'] ==  'Profesional Completo (Carreras 4 o más años)'] <- '53'
# m['educ'][m['educ'] ==  'Primaria o Preparatoria (Sistema antiguo)'] <- '54'
# m['educ'][m['educ'] ==  'Prekinder/Kinder (Transición menor y Transición Mayor)'] <- '55'
# m['educ'][m['educ'] ==  'No sabe/no responde'] <- '56'
# m['educ'][m['educ'] ==  'Técnica Comercial, Industrial o Normalista (Sistema Antiguo)'] <- '57'
# m['educ'][m['educ'] ==  'Prekínder / Kínder (Transición menor y Transición Mayor)'] <- '58'
# 
# 
#  
# mm <<- m
 
# }

5 Etnia

5.1 2006

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2006

b <- ab$COMUNA
c <- ab$EDUC
d <- ab$T4
e <- ab$SEXO
f <- ab$E1

cross_tab =  xtabs(ab$EXPC ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$EXPC ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2006"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"

d <- d[,c(1,2,3,4,5,6,7)]
d_2006 <- d

d_2006 <- mutate_if(d_2006, is.factor, as.character)

# la_correccion(d_2006)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_06 <- mm

5.2 2009

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2009

b <- ab$COMUNA
c <- ab$EDUC
d <- ab$T5
e <- ab$SEXO
f <- ab$E1

cross_tab =  xtabs(ab$EXPC ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$EXPC ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2009"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"

d <- d[,c(1,2,3,4,5,6,7)]
d_2009 <- d

d_2009 <- mutate_if(d_2009, is.factor, as.character)

# la_correccion(d_2009)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_09 <- mm

5.3 2011

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2011

b <- ab$comuna
c <- ab$educ
d <- ab$r6
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc_full ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc_full ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2011"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"

d <- d[,c(1,2,3,4,5,6,7)]
d_2011 <- d

d_2011 <- mutate_if(d_2011, is.factor, as.character)

# la_correccion(d_2011)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_11 <- mm

5.4 2013

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2013

b <- ab$comuna
c <- ab$educ
d <- ab$r6
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2013"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"
# d$cod <- d[,2]
d <- d[,c(1,2,3,4,5,6,7)]
d_2013 <- d

d_2013 <- mutate_if(d_2013, is.factor, as.character)

# la_correccion(d_2013)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_13 <- mm

5.5 2015

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2015

b <- ab$comuna
c <- ab$educ
d <- ab$r3
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc_todas ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc_todas ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2015"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"

d <- d[,c(1,2,3,4,5,6,7)]
d_2015 <- d
d_2015 <- mutate_if(d_2015, is.factor, as.character)

# la_correccion(d_2015)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_15 <- mm

5.6 2017

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2017

b <- ab$comuna
c <- ab$educ
d <- ab$r3
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2017"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"

d <- d[,c(1,2,3,4,5,6,7)]
d_2017 <- d

d_2017 <- mutate_if(d_2017, is.factor, as.character)

# la_correccion(d_2017)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_17 <- mm

5.7 2020

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2020 
b <- ab$comuna
c <- ab$educ
d <- ab$r3
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2020"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Etnia"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"

d <- d[,c(1,2,3,4,5,6,7)]
d_2020 <- d
d_2020 <- mutate_if(d_2020, is.factor, as.character)

# la_correccion(d_2020)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_20 <- mm

6 Tabla final etnia

union <- rbind(d_2006,d_2009,d_2011,d_2013,d_2015,d_2017,d_2020)
fn_etnia(union)

union$cod_sexo <- union$Sexo
union$cod_sexo[union$cod_sexo == "Hombre"] <- "01"
union$cod_sexo[union$cod_sexo == "Mujer"] <- "02"

union$cod_alfa <- union$`Sabe leer?`
union$cod_alfa[union$cod_alfa == "Sí"] <- "01"
union$cod_alfa[union$cod_alfa == "No"] <- "02"

Etnia <- c(sort(unique(union$Etnia)[-6]),"No pertenece a ningún pueblo indígena",NA)
Etnia<- as.data.frame(Etnia)
Etnia$cod_etnia <- paste("00",seq(1:nrow(Etnia)), sep = "")
codigos <- Etnia$cod_etnia
rango <- seq(1:nrow(Etnia))
cadena <- paste("",codigos[rango], sep = "")
cadena <- substr(cadena,(nchar(cadena)[rango])-(1),4)
codigos <- as.data.frame(codigos)
cadena <- as.data.frame(cadena)
codigos <- cbind(Etnia,cadena)
colnames(codigos) <- c("Etnia","cadena","cod_etnia")
codigos <- codigos[,c(1,3)]




tab_f <- merge(x=union, y=codigos, by="Etnia")

tab_f <- merge(x = tab_f, y = cod_com, by = "comuna")



tab_f <- merge(x = tab_f, y = Diccionario_corregido, by = "educ")



# tab_f <- tab_f[,c(1,13,3,4,2,12,5,9,6,10,7,8)]

datatable(tab_f, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
          options = list(dom = 'Bfrtip',
          buttons = list('colvis', list(extend = 'collection',
          buttons = list(
          list(extend='copy'),
          list(extend='excel',
            filename = 'nivel_educacional'),
          list(extend='pdf',
            filename= 'nivel_educacional')),
          text = 'Download')), scrollX = TRUE))


7 Migración

7.0.0.1 2011

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2011

b <- ab$comuna
c <- ab$educ
d <- ab$r2p_cod
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc_full ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc_full ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2011"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Migracion"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"
d$cod <- d[,2]
d <- d[,c(1,8,2,3,4,5,6,7)]
d_2011 <- d
d_2011 <- mutate_if(d_2011, is.factor, as.character)

# la_correccion(d_2011)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_11 <- mm

7.0.0.2 2013

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2013

b <- ab$comuna
c <- ab$educ
d <- ab$r2_p_cod
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2013"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Migracion"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"
d$cod <- d[,2]
d <- d[,c(1,8,2,3,4,5,6,7)]
d_2013 <- d

d_2013 <- mutate_if(d_2013, is.factor, as.character)

# la_correccion(d_2013)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_13 <- mm

7.0.0.3 2015

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2015

b <- ab$comuna
c <- ab$educ
d <- ab$r2espp_cod
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc_todas ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc_todas ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2015"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Migracion"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"
d$cod <- d[,2]
d <- d[,c(1,8,2,3,4,5,6,7)]
d_2015 <- d
d_2015 <- mutate_if(d_2015, is.factor, as.character)

# la_correccion(d_2015)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_15 <- mm

7.0.0.4 2017

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2017

b <- ab$comuna
c <- ab$educ
d <- ab$r2_p_cod
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2017"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Migracion"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"
d$cod <- d[,2]
d <- d[,c(1,8,2,3,4,5,6,7)]
d_2017 <- d
d_2017 <- mutate_if(d_2017, is.factor, as.character)

# la_correccion(d_2017)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_17 <- mm

7.0.0.5 2020

Generamos las tablas de contingencia tal como acostumbramos:

ab <- casen_2020

b <- ab$comuna
c <- ab$educ
d <- ab$r2_pais_esp
e <- ab$sexo
f <- ab$e1

cross_tab =  xtabs(ab$expc ~   unlist(b) + unlist(c)  + unlist(d) + unlist(e)  + unlist(f),aggregate(ab$expc ~  unlist(b) + unlist(c) + unlist(d) + unlist(e) + unlist(f) ,ab,mean))
tabla <- as.data.frame(cross_tab)
d <-tabla[!(tabla$Freq == 0),]
d$anio <- "2020"
      
names(d)[1] <- "comuna"
names(d)[2] <- "educ"
names(d)[3] <- "Migracion"
names(d)[4] <- "Sexo"
names(d)[5] <- "Sabe leer?"
names(d)[6] <- "Frecuencia"
names(d)[7] <- "Año"
d$cod <- d[,2]
d <- d[,c(1,8,2,3,4,5,6,7)]
d_2020 <- d
d_2020 <- mutate_if(d_2020, is.factor, as.character)

# la_correccion(d_2020)
# names(mm)[2] <- paste0(colnames(mm)[3])
# names(mm)[3] <- paste0("cod_",colnames(mm)[3])
# mm_20 <- mm

8 Tabla final migración

union <- rbind(d_2011,d_2013,d_2015,d_2017,d_2020)

union$cod_sexo <- union$Sexo
union$cod_sexo[union$cod_sexo == "Hombre"] <- "01"
union$cod_sexo[union$cod_sexo == "Mujer"] <- "02"

union$cod_alfa <- union$`Sabe leer?`
union$cod_alfa[union$cod_alfa == "Sí"] <- "01"
union$cod_alfa[union$cod_alfa == "No"] <- "02"

tab_f <- merge(x = union, y = cod_com, by = "comuna")

tab_f <- merge(x = tab_f, y = Diccionario_corregido, by = "educ")

tab_f <- tab_f[,c(1,2,3,4,5,9,6,10,7,8)]

datatable(tab_f, extensions = 'Buttons', escape = FALSE, rownames = FALSE,
          options = list(dom = 'Bfrtip',
          buttons = list('colvis', list(extend = 'collection',
          buttons = list(
          list(extend='copy'),
          list(extend='excel',
            filename = 'nivel_educacional_migración'),
          list(extend='pdf',
            filename = 'nivel_educacional_migración')),
          text = 'Download')), scrollX = TRUE))