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")