Ir al contenido

Herramientas para facilitar el trabajo con datos de comunas y regiones de Chile en R.

El objetivo de este paquete es poder ayudar a todas las personas que trabajan datos territoriales de Chile a simplificar sus procesos de análisis de datos con R. Principalmente, este paquete busca facilitar tareas de limpieza y procesamiento de datos que suelen ser necesarias al trabajar con datos de Chile a nivel comunal y regional.

Por ejemplo:

La razón de este paquete viene de mi propia experiencia trabajando con datos sociales: los datos territoriales vienen siempre con dudosa calidad en las variables que especifican las comunas: nombres mal escritos, en mayúsculas, sin eñes, etc.

Revisa la viñeta vignette("territorial") para una introducción al paquete!


Paquete desarrollado bajo el programa de Campeones de ROpenSci, con el apoyo de mi mentora Andrea Gómez Vargas

Instalación

Puedes instalar la versión de desarrollo este paquete desde GitHub:

# install.packages("pak")
pak::pak("bastianolea/territorial")

Nota: el paquete está en etapa de desarrollo. Si bien es funcional y útil en este momento, sus funciones pueden cambiar en futuras versiones, y su estabilidad no está garantizada.

Usando {territorial}

Como su nombre lo dice, territorial entrega varias herramientas para trabajar con datos territoriales de Chile, principalmente sus regiones o comunas.

La premisa del paquete es que tenemos una tabla (territorial::territorios) que contiene los nombres oficiales y los códigos únicos territoriales de todas las regiones, provincias y comunas de Chile.

Si tienes datos comunales de Chile, puedes revisar la calidad de sus comunas con validar_comunas(), para detectar posibles problemas:

datos |> 
  validar_comunas(nombre_comuna) |> 
  invisible()
! mayúsculas: 2 casos de comunas escritas en mayúsculas

! mayúsculas: 2 casos de comunas escritas en minúsculas

! mayúsculas: 1 caso de comunas con preposiciones ('de', 'del') escritas en mayúsculas

ℹ resumen: 7 casos de comunas que no conciden con comunas correctamente escritas (ver `territorial::comunas()`)

También puedes limpiar automáticamente las comunas con limpiar_comunas(), y obtener una columna con las comunas correctas (que salen de la tabla territorial::territorios), obtenidas por medio de varias técnicas de limpieza de datos:

datos |> 
  mutate(nombre_corregido = limpiar_comunas(nombre_comuna))
ℹ Limpiando 8 nombres de comunas (8 son distintas)

── Paso 1: confirmar comunas correctas 

ℹ De las 8 comunas, 1 ya eran correctas: El Monte

── Paso 2: coincidencias por limpieza de texto 

ℹ A partir de la limpieza de texto, se limpiaron 7 de 8 comunas: Pirque, El Monte, Maipú, Santiago, Cerrillos, San José de Maipo y O'Higgins

── Paso 3: coincidencias aproximadas de texto 

ℹ Se limpiaron 1 de 1 comunas por medio de coincidencias aproximadas de texto: Providencia

── Conclusión de limpieza de comunas 

✔ De las 8 comunas, se limpiaron 8 en total (100%)

ℹ Mostrando proceso:

# A tibble: 8 × 5
  original          correctas limpieza          coincidencia resultado        
  <chr>             <chr>     <chr>             <chr>        <chr>            
1 PIRQUE            <NA>      Pirque            <NA>         Pirque           
2 El Monte          El Monte  El Monte          <NA>         El Monte         
3 Maipu             <NA>      Maipú             <NA>         Maipú            
4 santiago          <NA>      Santiago          <NA>         Santiago         
5 prohibidencia     <NA>      <NA>              Providencia  Providencia      
6 CERRILLOS         <NA>      Cerrillos         <NA>         Cerrillos        
7 San José De Maipo <NA>      San José de Maipo <NA>         San José de Maipo
8 OHiggins          <NA>      O'Higgins         <NA>         O'Higgins        

# A tibble: 8 × 2
  nombre_comuna     nombre_corregido 
  <chr>             <chr>            
1 PIRQUE            Pirque           
2 El Monte          El Monte         
3 Maipu             Maipú            
4 santiago          Santiago         
5 prohibidencia     Providencia      
6 CERRILLOS         Cerrillos        
7 San José De Maipo San José de Maipo
8 OHiggins          O'Higgins        

Si necesitamos agregar datos territoriales a una tabla de datos que solamente tiene las comunas o los códigos únicos territoriales de Chile (vignette(codigos_unicos_territoriales)), podemos usar contextualizar() para agregar rápidamente todas las columnas territoriales que falten.

datos <- tribble(
  ~nombre_comuna, ~poblacion,
  "Puente Alto",    1,
  "La Florida",     1,
  "La Granja",      1,
  "San Joaquín",    1)
datos |>
  contextualizar(nombre_comuna)
ℹ columnas agregadas: codigo_region, nombre_region, codigo_provincia, nombre_provincia y codigo_comuna

# A tibble: 4 × 7
  codigo_region nombre_region    codigo_provincia nombre_provincia codigo_comuna
          <dbl> <chr>                       <dbl> <chr>                    <dbl>
1            13 Metropolitana d…              132 Cordillera               13201
2            13 Metropolitana d…              131 Santiago                 13110
3            13 Metropolitana d…              131 Santiago                 13111
4            13 Metropolitana d…              131 Santiago                 13129
# ℹ 2 more variables: nombre_comuna <chr>, poblacion <dbl>

Así, un dataframe que solamente tiene nombres de comuna puede pasar a tener todas las demás variables que descrien territorialmente a esos datos.


Estas son algunas de las funciones principales, pero existen muchas más que facilitan el trabajo con datos territoriales de Chile: revisa el índice!