1 Introducción
El procedimiento de generación de tablas de contingencia trae problemas si se condideran varias tablas referidas por ejemplo a varios años, cuyas categorías de divergen.
Ésta pregunta sólo se comenzó a aplicar en la Casen del 2015 y hasta la versión 2017
direccion <- switch(2,"C:/Users/enamo/Desktop/Shiny-R/Casen_en_pandemia_2020/casen/","C:/Users/chris/OneDrive/Documentos/archivos_grandes/")
dataset_06 <<- readRDS(paste0(direccion,"casen_2006_c.rds"))
dataset_06 <- mutate_if(dataset_06, is.factor, as.character)
dataset_09 <<- readRDS(paste0(direccion,"casen_2009_c.rds"))
dataset_09 <- mutate_if(dataset_09, is.factor, as.character)
dataset_11 <<- readRDS(paste0(direccion,"casen_2011_c.rds"))
dataset_11 <- mutate_if(dataset_11, is.factor, as.character)
dataset_13 <<- readRDS(paste0(direccion,"casen_2013_c.rds"))
dataset_13 <- mutate_if(dataset_13, is.factor, as.character)
dataset_15 <<- readRDS(paste0(direccion,"casen_2015_c.rds"))
dataset_15 <- mutate_if(dataset_15, is.factor, as.character)
dataset_17 <<- readRDS(paste0(direccion,"casen_2017_c.rds"))
dataset_17 <- mutate_if(dataset_17, is.factor, as.character)
dataset_20 <<- readRDS(paste0(direccion,"casen_2020_e1.rds"))
dataset_20 <- mutate_if(dataset_20, is.factor, as.character)
cod_com <- readRDS("C:/Users/chris/OneDrive/Documentos/archivos_grandes//codigos_comunales_2006-2020.rds")
names(cod_com)[2] <- "comuna"casen_2006 <<- dataset_06
casen_2009 <<- dataset_09
casen_2011 <<- dataset_11
casen_2013 <<- dataset_13
casen_2015 <<- dataset_15
casen_2017 <<- dataset_17
casen_2020 <<- dataset_20Homologació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 == ""] <- NA1.1 Se obtiene el universo de categorías para e7_subarea cada año
2015:
ab <- casen_2015
unique_d_2015 <- unique(ab$e6c_cod)
ab <- casen_2017
unique_d_2017 <- unique(ab$e7_subarea)2 Diccionario
Se unen todas las categorías de respuesta, se excluyen las repetidas y se les asocia un código:
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"
el_total <- rbind(unique_d_2015, unique_d_2017)
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))dataf1 <- data.frame()
for (n in 1:nrow(el_total_final)) {
dataf1 <- rbind(dataf1,paste0("m['e7_subarea'][m['e7_subarea'] == '",el_total_final[n,1],"']"," <- '",el_total_final[n,2],"'"))
}
dataf1 <- as.data.frame(dataf1)
write_xlsx(dataf1,"el_total_final.xlsx")carrera <- read_xlsx("C:/Users/chris/OneDrive/Documentos/GitHub/ds_ttcc_ok/AstridCodigos/Diccionario/tabla_003_Diccionario_Educación_carrera.xlsx")## New names:
## * `` -> ...2
## * `` -> ...3
## * `` -> ...4
## * `` -> ...5
## * `` -> ...6
## * ...
carrera <- carrera[-c(1:2),c(1,3)]
names(carrera)[1] <- "e7_subarea"
names(carrera)[2] <- "Homologacion"
datatable(carrera, 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))la_correccion <- function(m) {
m <- merge(m, carrera, by = "e7_subarea")
mm <<- m
}3 Etnia
3.0.0.1 2015
Generamos las tablas de contingencia tal como acostumbramos:
ab <- casen_2015
b <- ab$comuna
c <- ab$e6c_cod
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] <- "e7_subarea"
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,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)[1] <- paste0(colnames(mm)[3])
names(mm)[3] <- paste0("cod_",colnames(mm)[3])
mm_15 <- mm 3.0.0.2 2017
Generamos las tablas de contingencia tal como acostumbramos:
ab <- casen_2017
b <- ab$comuna
c <- ab$e7_subarea
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] <- "e7_subarea"
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,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)[1] <- paste0(colnames(mm)[3])
names(mm)[3] <- paste0("cod_",colnames(mm)[3])
mm_17 <- mm4 Tabla final etnia
union <- rbind(mm_15,mm_17)
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")
tab_f <- merge(x=union, y=codigos, by="Etnia")
tab_f <- merge(x = tab_f, y = cod_com, by = "comuna")
homol <- sort(unique(tab_f$Homologacion))
homol<- as.data.frame(homol)
homol$cod_homol <- paste("00",seq(1:nrow(homol)), sep = "")
codigos <- homol$cod_homol
rango <- seq(1:nrow(homol))
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(homol,cadena)
colnames(codigos) <- c("Homologacion","cadena_h","cod_homologacion")
tab_f <- merge(x=tab_f, y=codigos, by="Homologacion")saveRDS(tab_f,"tab_f.rds")tab_f <- tab_f[,c("comuna","cod_comuna","Etnia","cod_etnia","Sexo","cod_sexo","Sabe leer?","cod_alfa","Homologacion","cod_homologacion","Frecuencia","Año")]
#
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 = 'programa_de_estudios'),
list(extend='pdf',
filename= 'programa_de_estudios')),
text = 'Download')), scrollX = TRUE))Ahora debemos generar una nueva estructura que nos permita desplegar la interpolacion de las categorias de respuestas:
5 Migracion
5.0.0.1 2015
Generamos las tablas de contingencia tal como acostumbramos:
ab <- casen_2015
b <- ab$comuna
c <- ab$e6c_cod
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] <- "e7_subarea"
names(d)[3] <- "Origen"
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)[1] <- paste0(colnames(mm)[3])
names(mm)[3] <- paste0("cod_",colnames(mm)[3])
mm_15 <- mm5.0.0.2 2017
Generamos las tablas de contingencia tal como acostumbramos:
ab <- casen_2017
b <- ab$comuna
c <- ab$e7_subarea
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] <- "e7_subarea"
names(d)[3] <- "Origen"
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)[1] <- paste0(colnames(mm)[3])
names(mm)[3] <- paste0("cod_",colnames(mm)[3])
mm_17 <- mm6 Tabla final migración
union <- rbind(mm_15,mm_17)
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")
homol <- sort(unique(tab_f$Homologacion))
homol<- as.data.frame(homol)
homol$cod_homol <- paste("00",seq(1:nrow(homol)), sep = "")
codigos <- homol$cod_homol
rango <- seq(1:nrow(homol))
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(homol,cadena)
colnames(codigos) <- c("Homologacion","cadena_h","cod_homologacion")
tab_f <- merge(x=tab_f, y=codigos, by="Homologacion")
tab_f <- tab_f[,c("comuna","cod_comuna","Origen","Sexo","cod_sexo","Sabe leer?","cod_alfa","Homologacion","cod_homologacion","Frecuencia","Año")]
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 = 'programa_de_estudios'),
list(extend='pdf',
filename= 'programa_de_estudios')),
text = 'Download')), scrollX = TRUE))