Limpieza de datos Censo 2017
library(rio)
censo = import("data.xlsx")
## New names:
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
## • `` -> `...12`
## • `` -> `...13`
## • `` -> `...14`
## • `` -> `...15`
## • `` -> `...16`
## • `` -> `...17`
## • `` -> `...18`
## • `` -> `...19`
## • `` -> `...20`
## • `` -> `...21`
## • `` -> `...22`
## • `` -> `...23`
## • `` -> `...24`
## • `` -> `...25`
## • `` -> `...26`
## • `` -> `...27`
## • `` -> `...28`
## • `` -> `...29`
## • `` -> `...30`
## • `` -> `...31`
## • `` -> `...32`
## • `` -> `...33`
## • `` -> `...34`
## • `` -> `...35`
## • `` -> `...36`
## • `` -> `...37`
## • `` -> `...38`
## • `` -> `...39`
## • `` -> `...40`
## • `` -> `...41`
## • `` -> `...42`
## • `` -> `...43`
## • `` -> `...44`
## • `` -> `...45`
## • `` -> `...46`
## • `` -> `...47`
## • `` -> `...48`
## • `` -> `...49`
## • `` -> `...50`
## • `` -> `...51`
## • `` -> `...52`
## • `` -> `...53`
## • `` -> `...54`
## • `` -> `...55`
## • `` -> `...56`
## • `` -> `...57`
## • `` -> `...58`
## • `` -> `...59`
## • `` -> `...60`
## • `` -> `...61`
## • `` -> `...62`
## • `` -> `...63`
## • `` -> `...64`
## • `` -> `...65`
Colocamos el nombre a las variables
library(dplyr)
##
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
names(censo)=censo[5,]
head(censo,10)%>%
rmarkdown::paged_table()
Borramos filas y columnas
censo=censo[-c(1:5),]
head(censo,10)%>%
rmarkdown::paged_table()
Diferenciamos Departamento, Provincia y Distrito
library(stringr)
censo$Departamento <- str_extract(censo$Distrito, "^[^,]+")
# Extraer la Provincia (texto entre la primera y segunda coma)
censo$Provincia <- str_extract(censo$Distrito, "(?<=,\\s)[^,]+")
# Extraer el Distrito (texto después de los dos puntos ":")
censo$Distrito <- str_extract(censo$Distrito, "(?<=distrito:\\s).*")
Revisar las variables
names(censo)
## [1] NA
## [2] "Código"
## [3] "Distrito"
## [4] "Sí tiene servicio de agua todos los días de la semana"
## [5] "No tiene servicio de agua todos los días de la semana"
## [6] "Total"
## [7] "Sí tiene alumbrado eléctrico"
## [8] "No tiene alumbrado eléctrico"
## [9] "Total"
## [10] "Sí tiene conexión a internet"
## [11] "No tiene conexión a internet"
## [12] "Total"
## [13] "No tiene discapacidad para moverse o caminar para usar brazos y piernas"
## [14] "Sí, tiene discapacidad para moverse o caminar para usar brazos y piernas"
## [15] "Total"
## [16] "Quechua"
## [17] "Aimara"
## [18] "Ashaninka"
## [19] "Awajún / Aguaruna"
## [20] "Shipibo - Konibo"
## [21] "Shawi/Chayahuita"
## [22] "Matsigenka/Machiguenga"
## [23] "Achuar"
## [24] "Otra lengua nativa u originaria"
## [25] "Castellano"
## [26] "Portugués"
## [27] "Otra lengua extranjera"
## [28] "Lengua de señas peruanas"
## [29] "No escucha, ni habla"
## [30] "Wampis"
## [31] "Kichwa"
## [32] "Nomatsigenga"
## [33] "Tikuna"
## [34] "Urarina"
## [35] "Yine"
## [36] "Yanesha"
## [37] "Kandozi-Chapra"
## [38] "Kakataibo"
## [39] "Matses"
## [40] "Kukama kukamiria"
## [41] "Yagua"
## [42] "Secoya"
## [43] "Harakbut"
## [44] "Yaminahua"
## [45] "Jaqaru"
## [46] "Murui-Muinani"
## [47] "Kakinte"
## [48] "Amahuaca"
## [49] "Arabela"
## [50] "Nahua"
## [51] "Ese Eja"
## [52] "Capanahua"
## [53] "Maijuna"
## [54] "Ocaina"
## [55] "Sharanahua"
## [56] "Cauqui"
## [57] "Shiwilu"
## [58] "Cashinahua"
## [59] "Isconahua"
## [60] "Omagua"
## [61] "No sabe / No responde"
## [62] "Total"
## [63] "Sí sabe leer y escribir"
## [64] "No sabe leer y escribir"
## [65] "Total"
## [66] "Departamento"
## [67] "Provincia"
Seleccionamos las variables que utilizaremos
censo_final <- censo[, c(2, 66, 67, 3, 4, 6, 7, 9, 10, 12, 14, 15, 16, 17,18, 19, 25, 62, 63, 65)]
names(censo_final)
## [1] "Código"
## [2] "Departamento"
## [3] "Provincia"
## [4] "Distrito"
## [5] "Sí tiene servicio de agua todos los días de la semana"
## [6] "Total"
## [7] "Sí tiene alumbrado eléctrico"
## [8] "Total.1"
## [9] "Sí tiene conexión a internet"
## [10] "Total.2"
## [11] "Sí, tiene discapacidad para moverse o caminar para usar brazos y piernas"
## [12] "Total.3"
## [13] "Quechua"
## [14] "Aimara"
## [15] "Ashaninka"
## [16] "Awajún / Aguaruna"
## [17] "Castellano"
## [18] "Total.4"
## [19] "Sí sabe leer y escribir"
## [20] "Total.5"
Renombramos
nuevos_nombres <- c("Agua", "Alumbrado", "Internet", "Discapacidad", "Awajun", "Alfabetizacion", "Poblacion")
names(censo_final)[c(5, 7, 9, 11, 16, 19, 20)] <- nuevos_nombres
Vemos los datos
str(censo_final)
## 'data.frame': 1877 obs. of 20 variables:
## $ Código : chr "10101" "10102" "10103" "10104" ...
## $ Departamento : chr "Amazonas" "Amazonas" "Amazonas" "Amazonas" ...
## $ Provincia : chr "Chachapoyas" "Chachapoyas" "Chachapoyas" "Chachapoyas" ...
## $ Distrito : chr "Chachapoyas" "Asunción" "Balsas" "Cheto" ...
## $ Agua : chr "6307" "84" "194" "186" ...
## $ Total : chr "6705" "99" "233" "186" ...
## $ Alumbrado : chr "6797" "85" "241" "186" ...
## $ Total.1 : chr "7355" "100" "333" "212" ...
## $ Internet : chr "1534" "0" "3" "6" ...
## $ Total.2 : chr "8359" "104" "355" "220" ...
## $ Discapacidad : chr "762" "22" "20" "31" ...
## $ Total.3 : chr "32589" "262" "1136" "642" ...
## $ Quechua : chr "152" "1" "1" "1" ...
## $ Aimara : chr "10" "0" "0" "0" ...
## $ Ashaninka : chr "0" "0" "0" "0" ...
## $ Awajun : chr "51" "0" "0" "0" ...
## $ Castellano : chr "30078" "243" "1023" "605" ...
## $ Total.4 : chr "31036" "250" "1066" "612" ...
## $ Alfabetizacion: chr "28270" "204" "876" "551" ...
## $ Poblacion : chr "31036" "250" "1066" "612" ...
Pasamos a numéricas
censo_final <- censo_final %>%
mutate_at(vars("Agua":"Poblacion"), as.numeric)
str(censo_final)
## 'data.frame': 1877 obs. of 20 variables:
## $ Código : chr "10101" "10102" "10103" "10104" ...
## $ Departamento : chr "Amazonas" "Amazonas" "Amazonas" "Amazonas" ...
## $ Provincia : chr "Chachapoyas" "Chachapoyas" "Chachapoyas" "Chachapoyas" ...
## $ Distrito : chr "Chachapoyas" "Asunción" "Balsas" "Cheto" ...
## $ Agua : num 6307 84 194 186 155 ...
## $ Total : num 6705 99 233 186 163 ...
## $ Alumbrado : num 6797 85 241 186 134 ...
## $ Total.1 : num 7355 100 333 212 204 ...
## $ Internet : num 1534 0 3 6 0 ...
## $ Total.2 : num 8359 104 355 220 206 ...
## $ Discapacidad : num 762 22 20 31 15 36 19 78 124 87 ...
## $ Total.3 : num 32589 262 1136 642 585 ...
## $ Quechua : num 152 1 1 1 1 2 7 4 93 6 ...
## $ Aimara : num 10 0 0 0 0 0 0 1 0 0 ...
## $ Ashaninka : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Awajun : num 51 0 0 0 0 0 0 4 1 0 ...
## $ Castellano : num 30078 243 1023 605 547 ...
## $ Total.4 : num 31036 250 1066 612 557 ...
## $ Alfabetizacion: num 28270 204 876 551 453 ...
## $ Poblacion : num 31036 250 1066 612 557 ...
Creamos las tasas
censo_final$Tasa_agua <- (censo_final$Agua / censo_final$Total) * 100
censo_final$Tasa_alumbrado <- (censo_final$Alumbrado / censo_final$Total.1) * 100
censo_final$Tasa_internet <- (censo_final$Internet / censo_final$Total.2) * 100
Creamos y descargamos la data final
names(censo_final)
## [1] "Código" "Departamento" "Provincia" "Distrito"
## [5] "Agua" "Total" "Alumbrado" "Total.1"
## [9] "Internet" "Total.2" "Discapacidad" "Total.3"
## [13] "Quechua" "Aimara" "Ashaninka" "Awajun"
## [17] "Castellano" "Total.4" "Alfabetizacion" "Poblacion"
## [21] "Tasa_agua" "Tasa_alumbrado" "Tasa_internet"
data_final <- censo_final[, c(1, 2, 3, 4, 19, 21, 22, 23, 11, 13, 14, 15, 16, 17, 20)]
str(data_final)
## 'data.frame': 1877 obs. of 15 variables:
## $ Código : chr "10101" "10102" "10103" "10104" ...
## $ Departamento : chr "Amazonas" "Amazonas" "Amazonas" "Amazonas" ...
## $ Provincia : chr "Chachapoyas" "Chachapoyas" "Chachapoyas" "Chachapoyas" ...
## $ Distrito : chr "Chachapoyas" "Asunción" "Balsas" "Cheto" ...
## $ Alfabetizacion: num 28270 204 876 551 453 ...
## $ Tasa_agua : num 94.1 84.8 83.3 100 95.1 ...
## $ Tasa_alumbrado: num 92.4 85 72.4 87.7 65.7 ...
## $ Tasa_internet : num 18.351 0 0.845 2.727 0 ...
## $ Discapacidad : num 762 22 20 31 15 36 19 78 124 87 ...
## $ Quechua : num 152 1 1 1 1 2 7 4 93 6 ...
## $ Aimara : num 10 0 0 0 0 0 0 1 0 0 ...
## $ Ashaninka : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Awajun : num 51 0 0 0 0 0 0 4 1 0 ...
## $ Castellano : num 30078 243 1023 605 547 ...
## $ Poblacion : num 31036 250 1066 612 557 ...
library(openxlsx)
write.xlsx(data_final, file = "data_final.xlsx")