{territorial}: un paquete de R para trabajar con datos de comunas y regiones de Chile
Herramientas para facilitar el procesamiento y limpieza de datos terrioriales de Chile con R
28/9/2026
Los datos públicos sobre temáticas sociales siempre vienen en dudosa calidad, sobre todo cuando se refieren a comunas: nombres mal escritos, en mayúsculas, sin eñes, sin tildes, etc. Así que creé {territorial} para facilitar este tipo de tareas!
El objetivo de este paquete es simplificar el análisis de datos territoriales de Chile, facilitando tareas de limpieza y procesamiento de datos que suelen ser necesarias al trabajar con datos de Chile a nivel comunal y regional. Para ello, este paquete ofrece numerosas funciones de limpieza de datos para las tareas más frecuentes:
Por ejemplo:
- Revisar si los nombres de comunas y regiones vienen bien escritos (
validar_comunas()yvalidar_regiones()) - Limpiar los nombres de las comunas automáticamente con
limpiar_comunas(), incluso si vienen con faltas de ortografía o mal escritas! - Convertir nombres de comunas a
códigos únicos territoriales (
as_codigo_comuna()) y viceversa (as_nombre_comuna()), para facilitar el cruce con otras fuentes de datos - Ordenar las regiones del país de norte a sur (
ordenar_regiones()) - Si tienes los nombres o códigos de comuna, con
contextualizar()puedes agregar todos los datos territoriales faltantes (regiones y provincias con sus códigos únicos) a partir de las comunas - Redactar los nombres de las regiones (
redactar_region()) para que, por ejemplo, “Maule” sea “Región del Maule” - Clasificar las comunas de Chile en urbanas, mixtas y rurales con
agregar_clasificacion() - Clasificar las regiones de Chile en macrozonas con
agregar_macrozona() - Abreviar las comunas de Chile a siglas de tres caracteres con
abreviar_comunas() - y más!
Revisa la viñeta vignette("territorial") para una introducción!
Revisa la viñeta vignette("territorial") para una introducción al paquete!
Instalación
Puedes instalar la versión de desarrollo este paquete desde GitHub:
# install.packages("pak")
pak::pak("bastianolea/territorial")
Usando {territorial}
Como su nombre lo dice, {territorial} entrega herramientas para trabajar con datos territoriales de Chile, entendidos como datos tabulares cuyas observaciones correspondan a comunas o regiones del país.
library(territorial)
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. Usando esta tabla como fuente de verdad, podemos validar, corregir y complementar datos territoriales.
También se plantea el estándar de llamar las columnas como nombre_{x} y codigo_{x} (por ejemplo, nombre_comuna y codigo_comuna), para mantener orden y compatibilidad entre tablas, aunque esto es opcional.
Probemos {territorial} con una tabla con datos de ejemplo:
# crear una tabla con datos de ejemplo
datos <- dplyr::tibble(
nombre_comuna = c("PIRQUE", "El Monte", "Maipu", "nunoa",
"La calera", "prohibidencia", "Penialolen",
"CERRILLOS", "San José De Maipo", "OHiggins"))
datos
# A tibble: 10 × 1
nombre_comuna
<chr>
1 PIRQUE
2 El Monte
3 Maipu
4 nunoa
5 La calera
6 prohibidencia
7 Penialolen
8 CERRILLOS
9 San José De Maipo
10 OHiggins
Estas comunas vienen en mayúsculas, con faltas de ortografía, y mal escritas!
Podemos revisar la calidad de los nombres de las comunas con validar_comunas(), para detectar posibles problemas:
datos |>
validar_comunas(nombre_comuna) # cuando la columna con nombres de comunas se llama `nombre_comuna`, no es necesario especificarla
! Resumen: 9 casos de comunas que no conciden con comunas correctamente escritas (ver `territorial::comunas()`): PIRQUE, Maipu, nunoa, La calera, prohibidencia, Penialolen, CERRILLOS, San José De Maipo y OHiggins
! Mayúsculas: 2 casos de comunas escritas en mayúsculas: PIRQUE y CERRILLOS
! Minúsculas: 2 casos de comunas escritas en minúsculas: nunoa y prohibidencia
! Mayúsculas: 1 caso de comunas con preposiciones ('de', 'del') escritas en mayúsculas: San José De Maipo
ℹ Tildes: 1 caso de comunas que deberían tener tildes y no los tienen: Maipu
ℹ Eñes: 1 caso de comunas escritas sin eñe: nunoa
ℹ Problemas comunes: 1 caso de comunas popularmente mal escritas: OHiggins
✖ Validación de comunas: se encontraron 17 problemas con las comunas! Usa `territorial::limpiar_comunas()` para solucionarlos.
Ahora sabemos qué tipo de problemas vienen en los nombres de las comunas de nuestra tabla de datos.
Luego podemos limpiar automáticamente las comunas con limpiar_comunas(), y obtener una columna con las comunas correctamente escritas:
datos |>
limpiar_comunas(nombre_comuna)
ℹ Limpiando 10 nombres de comunas (10 son distintas)
→ Paso 1: confirmar comunas correctas
ℹ De las 10 comunas distintas, 1 ya eran correctas: El Monte
→ Paso 2: coincidencias por limpieza de texto
ℹ A partir de la limpieza de texto, se limpiaron 7 de 10 comunas: Pirque, El Monte, Maipú, Ñuñoa, Cerrillos, San José de Maipo y O'Higgins
→ Paso 3: casos especiales
ℹ Se encontró 1 caso especial: Calera
→ Paso 4: coincidencias aproximadas de texto
ℹ Se limpiaron 2 de 2 comunas por medio de coincidencias aproximadas de texto: Providencia y Peñalolén
→ Conclusión de limpieza de comunas
✔ De las 10 comunas distintas, se limpiaron 10 en total (100%)
# A tibble: 10 × 1
nombre_comuna
<chr>
1 Pirque
2 El Monte
3 Maipú
4 Ñuñoa
5 Calera
6 Providencia
7 Peñalolén
8 Cerrillos
9 San José de Maipo
10 O'Higgins
Esta función usa varias técnicas para limpiar automáticamente los nombres de las comunas y municipios de Chile. Si encuentras casos que no se limpian bien, escríbeme un issue.
Si tenemos una tabla que solamente tiene comunas, y necesitamos agregar las variables territoriales faltantes como región, provincia, y los
códigos únicos territoriales de Chile (vignette(codigos_unicos_territoriales)), podemos usar contextualizar() para agregar automáticamente todas las columnas territoriales que falten.
datos <- dplyr::tribble(
~nombre_comuna, ~personas,
"Puente Alto", 14,
"La Florida", 23,
"La Granja", 156,
"San Joaquín", 12)
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>, personas <dbl>
Así, un dataframe que solamente tiene nombres de comuna o códigos únicos territoriales puede pasar a tener todas las demás variables que describen territorialmente a esos datos.
Esto es extremadamente útil para limpiar datos: solamente necesitas una tabla con códigos únicos territoriales para aplicarle contextualizar() y obtener la tabla completa.
Por ejemplo, la siguiente tabla:
datos <- dplyr::tribble(
~codigo_comuna, ~personas,
13201, 14,
13110, 23,
13111, 156,
13129, 12)
Ahora le aplicamos contextualizar() y obtenemos una tabla con todas las variables que describen cada territorio de manera homogénea y estandarizada:
datos |>
contextualizar(codigo_comuna)
ℹ Columnas agregadas: codigo_region, nombre_region, codigo_provincia, nombre_provincia y nombre_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>, personas <dbl>
Estas son algunas de las funciones principales, pero existen muchas más que facilitan el trabajo con datos comunales y regionales de Chile: revisa el índice para verlas todas, o lee la viñeta para una guía de uso más completa.
Ejemplos de uso
En el sitio de la documentación del paquete tengo varios ejemplos de usos de {territorial} con datos reales:
- Ejemplo de limpieza de datos electorales (Servel)
- Ejemplo de limpieza de datos de uso de bibliotecas públicas en Chile
- Ejemplo de limpieza de datos de beneficiarios de programas de emprendimiento en Chile
También hay un ejemplo ficticio de
limpieza de datos extremadamente sucios y un par de tutoriales para usar {territorial} para facilitar la
creación de mapas comunales y
mapas regionales por macrozonas.
Paquete desarrollado bajo el programa de Campeones de ROpenSci, con el apoyo de mi mentora Andrea Gómez Vargas.
