{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

Chile limpieza de datos paquetes

territorial website

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() y validar_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:

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.

Fecha de publicación:
28/9/2026
Extensión:
6 minute read, 1267 words
Categorías:
Paquetes
Tags:
Chile limpieza de datos paquetes
Ver también:
Trivia de comunas, provincias y regiones de Chile
Plantilla de mapa interactivo de Chile con R, Shiny y MapGL
Limpiar planillas de Excel complejas en R con `{unpivotr}`