Package 'censo2022arg'

Title: Extraction and Analysis of 2022 Argentina Census Microdata from REDATAM Databases
Description: Provides tools to extract, label, and read microdata from the 2022 National Census of Population, Households and Dwellings of Argentina stored in REDATAM databases officially distributed by INDEC. Implements a complete province-by-province extraction pipeline with efficient memory management, reconstruction of hierarchical identifiers, automatic variable labeling from official INDEC dictionaries, and integrity verification against published totals. Allows working with census data directly in R without knowledge of REDATAM syntax, and supports export to multiple formats including Parquet, CSV, SPSS and SAS. Census data must be downloaded directly from the official INDEC portal (<https://www.indec.gob.ar>). This package does not distribute census data. Duran (2026) <doi:10.32614/CRAN.package.censo2022arg>.
Authors: Rodrigo Javier Duran [aut, cre] (ORCID: <https://orcid.org/0000-0002-3957-9510>), Jaime Salvador [ctb] (Autor original de red_dictionary.cpp, red_execute.cpp, red_initialize.cpp y redengine_c.h (paquete redatamx, GPL-3)), CELADE - Centro Latinoamericano y Caribeno de Demografia [cph] (Titular de derechos sobre el motor REDATAM (libredengine))
Maintainer: Rodrigo Javier Duran <[email protected]>
License: GPL (>= 3)
Version: 1.2.0
Built: 2026-05-22 22:07:42 UTC
Source: https://github.com/rodriduran/censo2022arg

Help Index


Configurar el directorio de datos del Censo 2022

Description

Define el directorio donde se guardaran todos los archivos del censo: bases REDATAM, metadatos y microdatos extraidos. Es el primer paso antes de usar cualquier otra funcion del paquete.

El directorio puede estar en cualquier ubicacion - disco interno, externo o de red. El paquete en si se instala en la libreria de R del sistema; los datos quedan donde usted elija.

Al ejecutarse, la funcion crea automaticamente la estructura de carpetas necesaria y copia los archivos de control oficial del INDEC.

Usage

censo_configurar(dir, persistent = FALSE)

Arguments

dir

Ruta al directorio raiz donde se guardaran todos los archivos del censo. Debe ser elegida por el usuario; el paquete no asume ninguna ubicacion por defecto.

persistent

Logico. Si TRUE, guarda la configuracion en .Rprofile para que el directorio quede disponible en todas las sesiones futuras sin necesidad de volver a configurar. Default FALSE.

Value

La ruta configurada (invisible).

See Also

censo_info, censo_descargar, censo_verificar_engine

Examples

## Not run: 
# Configurar para esta sesion unicamente
censo_configurar("/home/usuario/mis_datos/censo2022")

# Configurar y guardar para todas las sesiones futuras
censo_configurar("/home/usuario/mis_datos/censo2022", persistent = TRUE)

# En Windows
censo_configurar("D:/Datos/Censo2022", persistent = TRUE)

# En un disco externo (Mac/Linux)
censo_configurar("/Volumes/MiDisco/Censo2022", persistent = TRUE)

## End(Not run)


# Ejemplo ejecutable (usa directorio temporal):
old <- getOption("censo2022.dir")
censo_configurar(tempdir())
options(censo2022.dir = old)  # restaurar estado anterior

Descargar bases y documentacion del Censo 2022 desde el INDEC

Description

Descarga automaticamente desde el portal oficial del INDEC las bases de datos REDATAM, los diccionarios de variables, los cuestionarios y la documentacion metodologica del Censo 2022.

Los archivos se guardan en la estructura de directorios configurada previamente con censo_configurar().

Usage

censo_descargar(que = "todo", overwrite = FALSE)

Arguments

que

Character. Que descargar. Opciones:

  • "todo" (default): descarga todo lo disponible

  • "bases": solo las bases REDATAM (~500 MB)

  • "metadatos": diccionarios de variables y documentacion

  • "cuestionarios": formularios del censo en PDF

  • "metodologia": documentos metodologicos en PDF

Se pueden combinar: c("cuestionarios", "metodologia").

overwrite

Logico. Si TRUE, vuelve a descargar aunque el archivo ya exista. Default FALSE.

Details

La descarga de las bases puede demorar varios minutos dependiendo de la conexion. Si el enlace no esta disponible, la funcion indica como descargar los archivos manualmente desde el sitio del INDEC.

Value

Invisible NULL. Se ejecuta por sus efectos secundarios (descarga de archivos al directorio configurado).

See Also

censo_configurar, extraer_redatam

Examples

## Not run: 
# Descargar todo (recomendado la primera vez)
censo_descargar()

# Solo los metadatos (mas rapido, util para probar la configuracion)
censo_descargar(que = "metadatos")

# Forzar re-descarga de las bases
censo_descargar(que = "bases", overwrite = TRUE)

## End(Not run)

Descomprimir y organizar las bases y metadatos del Censo 2022

Description

Procesa los archivos ZIP de bases y metadatos del Censo 2022 y los organiza en los directorios internos del paquete. Detecta automaticamente cada subcarpeta por nombre (con sinonimos) y por contenido. Si no puede identificar alguna carpeta, la copia a censo_dir_bases() con su nombre original e indica al usuario como renombrarla manualmente.

Los ZIPs originales se conservan. Solo se eliminan los archivos temporales generados durante el proceso.

Usage

censo_descomprimir(dir = NULL, borrar_zip = FALSE, overwrite = FALSE)

Arguments

dir

Character. Carpeta donde estan los ZIPs. Si es NULL (default), busca en censo_dir_bases() y censo_dir_metadatos().

borrar_zip

Logico. Si TRUE, elimina los ZIPs al terminar. Default FALSE.

overwrite

Logico. Si TRUE, sobreescribe archivos existentes. Default FALSE.

Value

Invisible NULL.

Examples

## Not run: 
# ZIPs en una carpeta propia
censo_descomprimir(dir = "D:/Descargas/censo")

# ZIPs ya en los directorios internos del paquete
censo_descomprimir()

# Eliminar ZIPs al terminar
censo_descomprimir(dir = "D:/Descargas/censo", borrar_zip = TRUE)

## End(Not run)

Aplicar etiquetas a los microdatos extraidos del Censo

Description

Aplica las etiquetas del diccionario a los archivos de microdatos generados por extraer_redatam() o extraer_dic(). El proceso realiza tres transformaciones sobre cada archivo:

  1. Limpia los nombres de columna eliminando sufijos numericos del motor REDATAM (p01_0 -> P01).

  2. Agrega una etiqueta descriptiva a cada variable (atributo label).

  3. Convierte las variables categoricas a factor con las etiquetas de sus categorias (solo con fuente "xls" o "redatam").

Las variables geograficas identificadoras no se convierten a factor.

El proceso es idempotente: si un archivo ya fue etiquetado, se omite.

Usage

censo_etiquetar(
  fuente_meta = "auto",
  dic_path = NULL,
  provincias = "all",
  bases = "all",
  etiquetar = "todo"
)

Arguments

fuente_meta

Character. Fuente de metadatos: "auto" (default): selecciona automaticamente la mejor fuente disponible en orden xls > redatam > dic. "xls": XLS del INDEC (censo 2022, mejor calidad). "redatam": motor REDATAM via subproceso (censo 2022 sin XLS). "dic": diccionario directo via redatam_variables(), sin etiquetas de valores. Recomendado para censos anteriores.

dic_path

Character. Ruta al diccionario (.dicX o .rxdb). Requerido cuando fuente_meta = "dic" con un censo no 2022. Si es NULL (default), usa la base VP configurada.

provincias

Numerico, character o "all". Codigos o nombres de provincia. Default "all".

bases

Character o "all". Bases a etiquetar. Default "all".

etiquetar

Character. Que etiquetas aplicar: "todo" (default), "variables", "valores".

Value

Invisible NULL.

See Also

extraer_redatam, extraer_dic, censo_leer

Examples

## Not run: 
# Seleccion automatica de fuente (recomendado)
censo_etiquetar()

# Solo Formosa y Salta
censo_etiquetar(provincias = c(34, 66))

# Censos anteriores con base .dicX
censo_etiquetar(
  fuente_meta = "dic",
  dic_path    = "D:/Censos/censo2010.dicX"
)

## End(Not run)

Mostrar el estado actual de la configuracion

Description

Presenta un resumen del estado del paquete: directorio configurado, archivos disponibles, provincias extraidas y proximos pasos sugeridos. Tambien verifica si el motor de extraccion esta correctamente preparado.

Es util para orientarse al retomar el trabajo despues de un tiempo o para diagnosticar problemas de configuracion.

Usage

censo_info()

Value

La ruta del directorio configurado (invisible), o NULL si no hay configuracion activa.

See Also

censo_configurar, censo_descargar

Examples

if (nzchar(getOption("censo2022.dir", ""))) {
  censo_info()
}

Leer microdatos del Censo 2022

Description

Lee los microdatos extraidos del Censo 2022 y los devuelve como un objeto de R listo para analizar. Permite seleccionar provincias, variables y aplicar filtros de filas sin necesidad de cargar todo el conjunto de datos en memoria.

Se recomienda ejecutar censo_etiquetar() antes de usar esta funcion para disponer de nombres de variable legibles y categorias correctamente etiquetadas.

Usage

censo_leer(
  base = "Personas",
  provincias = "all",
  columnas = NULL,
  filtro = NULL,
  formato = "data.frame",
  dir = NULL
)

Arguments

base

Character. Base de datos a leer:

  • "Personas" (default): una fila por persona

  • "Hogares": una fila por hogar

  • "Viviendas": una fila por vivienda particular

  • "colectivas": personas en viviendas colectivas

  • "PO_VP": base completa combinada (VP + PO)

provincias

Numerico, character o "all". Provincias a leer. Acepta codigos numericos (c(66, 38)), nombres o partes del nombre (c("salta", "jujuy")), o "all" (default) para todas las provincias disponibles. "all" (default), se solicita confirmacion dado el volumen de datos (~12-15 GB en RAM para el pais completo).

columnas

Character o NULL. Nombres de variables a leer. Si es NULL (default), se cargan todas las columnas. Ejemplo: c("P01", "EDAD", "CONDACT").

filtro

Expresion o NULL. Condicion para filtrar filas antes de cargarlas en memoria. Se evalua sobre el dataset completo sin necesidad de cargarlo. Ejemplo: quote(EDAD >= 18).

formato

Character. Formato del objeto devuelto: "data.frame" (default), "data.table" o "tibble".

dir

Character o NULL. Directorio raiz de los datos. Si es NULL (default), usa el directorio configurado con censo_configurar().

Details

## Filtros y seleccion de columnas

Los filtros y la seleccion de columnas se aplican usando Apache Arrow antes de cargar los datos en la memoria de R. Esto permite trabajar con subconjuntos de datos sin necesidad de disponer de la RAM suficiente para el conjunto completo.

## Estimacion de uso de memoria

Los archivos en disco estan comprimidos (formato parquet). Al cargarlos en R, el uso de RAM es aproximadamente 4-5 veces mayor que el tamano del archivo. Una provincia mediana ocupa ~50-100 MB en RAM. El pais completo puede superar los 12 GB.

Value

Un data.frame, data.table o tibble segun el parametro formato.

See Also

extraer_redatam, censo_etiquetar, censo_configurar

Examples

## Not run: 
# Personas de Formosa
df <- censo_leer(base = "Personas", provincias = 34)

# Por nombre de provincia
df <- censo_leer(base = "Personas", provincias = c("salta", "jujuy"))

# Personas de Salta y Jujuy, solo algunas variables
df <- censo_leer(
  base      = "Personas",
  provincias = c(66, 38),
  columnas  = c("P01", "EDAD", "CONDACT", "IDRADIO")
)

# Personas mayores de 18 anos de Cordoba
df <- censo_leer(
  base       = "Personas",
  provincias = 14,
  filtro     = quote(EDAD >= 18)
)

# Hogares de todo el pais como data.table
dt <- censo_leer(base = "Hogares", formato = "data.table")

## End(Not run)

Verificar el estado del motor de extraccion REDATAM

Description

Verifica si el motor de extraccion esta correctamente preparado para trabajar con el Censo 2022. Si no lo esta, muestra las instrucciones paso a paso para prepararlo segun su sistema operativo.

Por que es necesario este paso?

El motor REDATAM (libredengine, desarrollado por CELADE/CEPAL) tiene un limite interno que restringe la extraccion a 100 registros por consulta. Este limite fue disenado para uso interactivo del software REDATAM, no para la extraccion masiva de microdatos. Para poder extraer los 44 millones de registros del censo, es necesario ampliar ese limite aplicando una modificacion puntual al archivo del motor.

Esta modificacion es de bajo nivel (unos pocos bytes en el binario compilado) y no afecta ninguna otra funcionalidad. Debe realizarse una sola vez, y puede revertirse en cualquier momento usando la copia de seguridad que la funcion indica crear.

Si el motor no esta presente, la funcion ofrece descargarlo automaticamente desde el repositorio oficial del paquete (~28 MB). Si se detecta una version incompatible, ofrece reemplazarla automaticamente por la version requerida (1.2.1-final).

Usage

censo_verificar_engine()

Value

Invisible TRUE si el motor esta listo, FALSE si requiere preparacion.

See Also

censo_configurar, extraer_redatam

Examples

censo_verificar_engine()

Extraer microdatos desde cualquier diccionario REDATAM (.dicX o .rxdb)

Description

Extrae microdatos desde cualquier base REDATAM en formato .dicX o .rxdb, incluyendo bases de censos anteriores (2001, 2010) o bases alternativas al formato oficial del INDEC. Detecta automaticamente la jerarquia y las entidades disponibles, y produce archivos en el mismo formato que extraer_redatam().

A diferencia de extraer_redatam(), que filtra por provincia durante la extraccion, esta funcion extrae cada bloque completo y luego lo divide por provincia en R. Esto es necesario porque el motor no soporta filtrado nativo con formatos .dicX.

Usage

extraer_dic(
  dic_path = NULL,
  entidades = "todas",
  provincias = "all",
  formatos = "parquet",
  max_por_bloque = 10,
  output_dir = NULL
)

Arguments

dic_path

Character. Ruta al archivo de diccionario (.dicX o .rxdb).

entidades

Character. Entidades a extraer. Puede ser "todas" (default) para extraer todas las entidades sustantivas detectadas, o un vector con los nombres especificos, por ejemplo c("PERSONA", "HOGAR").

provincias

Numerico, character o "all". Codigos o nombres de provincia a extraer. Default "all".

formatos

Character. Formato de salida. Default "parquet". Tambien acepta "csv", "sav", "sas" o combinaciones.

max_por_bloque

Integer. Variables por bloque de extraccion. Default 10. Reducir en equipos con poca RAM.

output_dir

Character. Directorio de salida. Si es NULL (default), usa el directorio configurado con censo_configurar().

Value

Invisible. Lista con fallidas y log.

See Also

extraer_redatam, censo_etiquetar

Examples

## Not run: 
# Extraer todas las entidades de una base .dicX
extraer_dic(dic_path = "D:/Censos/CNPV2022-AR/CPV2022.dicX")

# Solo personas de Salta
extraer_dic(
  dic_path   = "D:/Censos/CNPV2022-AR/CPV2022.dicX",
  entidades  = "PERSONA",
  provincias = 66
)

# Censo 2010
extraer_dic(dic_path = "/ruta/al/censo2010.dicX")

## End(Not run)

Extraer microdatos del Censo Nacional de Poblacion, Hogares y Viviendas 2022

Description

Extrae los microdatos completos del Censo 2022 desde las bases REDATAM del INDEC, provincia por provincia, con verificacion automatica de integridad contra los totales oficiales publicados.

Para cada provincia genera cinco archivos:

  • provincia_PO_VP.parquet - base completa (una fila por persona)

  • provincia_Personas.parquet - variables de persona

  • provincia_Hogares.parquet - variables de hogar

  • provincia_Viviendas.parquet - variables de vivienda

  • provincia_colectivas.parquet - viviendas colectivas

La extraccion es retomable: si se interrumpe, al volver a ejecutar continua desde donde quedo sin repetir lo ya procesado.

Usage

extraer_redatam(
  provincias = "all",
  formatos = "parquet",
  max_por_bloque = 10,
  dic_path_vp = NULL,
  dic_path_po = NULL,
  dic_path_vc = NULL,
  output_dir = NULL,
  control_dir = NULL
)

Arguments

provincias

Numerico, character o "all". Codigos o nombres de provincia a extraer. Ejemplo: c(34, 66) o c("formosa", "salta"). Con "all" (default) procesa las 24 provincias.

formatos

Character. Formato de salida de los archivos. Default "parquet". Tambien acepta "csv", "sav", "sas" o combinaciones: c("parquet", "csv").

max_por_bloque

Integer. Numero maximo de variables por bloque de extraccion. Default 10. Reducir en equipos con poca memoria RAM.

dic_path_vp

Character. Ruta al archivo .rxdb de la Base VP. Si es NULL (default), se usa la ruta configurada con censo_configurar().

dic_path_po

Character. Ruta al archivo .rxdb de la Base PO. Si es NULL (default), se usa la ruta configurada.

dic_path_vc

Character. Ruta al archivo .rxdb de la Base VC. Si es NULL (default), se usa la ruta configurada.

output_dir

Character. Directorio de salida para los microdatos. Si es NULL (default), se usa el directorio configurado.

control_dir

Character. Directorio con los archivos de control del INDEC para verificacion. Si es NULL (default), se usa el directorio configurado.

Details

## Bases del Censo 2022

El INDEC distribuyo tres bases complementarias:

  • VP (Viviendas Particulares): contiene las variables principales e incluye los niveles geograficos de fraccion y radio censal, necesarios para analisis a nivel de radio.

  • PO (Pueblos Originarios, Afrodescendientes e Identidad de Genero): agrega seis variables sensibles no incluidas en VP. No incluye fraccion ni radio censal.

  • VC (Viviendas Colectivas): personas en establecimientos colectivos (hospitales, carceles, etc.).

La base extraida combina VP y PO, obteniendo el radio censal de VP y las seis variables adicionales de PO.

## Gestion de memoria

Cada bloque se extrae en un subproceso Rscript independiente. Esto evita la acumulacion de memoria del motor REDATAM en la sesion principal de R. El proceso maestro solo lee los archivos intermedios desde disco y los une en memoria.

Value

Invisible. Una lista con los elementos: fallidas (provincias con errores) y log (ruta al log).

See Also

censo_configurar para configurar las rutas, censo_etiquetar para etiquetar los archivos generados, censo_leer para leer los microdatos extraidos.

Examples

## Not run: 
# Extraer todas las provincias
extraer_redatam()

# Solo Formosa (prueba rapida)
extraer_redatam(provincias = 34)

# Salta y Jujuy, exportando tambien a CSV
extraer_redatam(provincias = c(66, 38), formatos = c("parquet", "csv"))

## End(Not run)

Extraer microdatos de cualquier base RedatamX (.rxdb)

Description

Convierte una base de datos en formato RedatamX (.rxdb) a un archivo de salida con todos sus microdatos, sin asumir ninguna estructura predefinida de variables, entidades ni jerarquia geografica.

La funcion detecta automaticamente la entidad mas granular de la jerarquia (entidad hoja), construye bloques de variables dinamicamente desde el diccionario, y extrae cada bloque en un subproceso independiente para una gestion eficiente de la memoria RAM.

Para el Censo Argentina 2022, utilice extraer_redatam, que incluye filtrado provincial, reconstruccion de identificadores jerarquicos y verificacion de integridad.

Usage

extraer_rxdb(
  dic_path,
  output_file = NULL,
  max_por_bloque = 10,
  formato = "parquet",
  verbose = TRUE
)

Arguments

dic_path

Character. Ruta al archivo de diccionario (.rxdb).

output_file

Character. Ruta al archivo de salida. Si es NULL (default), se genera automaticamente en el mismo directorio que dic_path con el nombre de la base.

max_por_bloque

Integer. Numero maximo de variables por bloque de extraccion. Default 10. Reducir en equipos con poca memoria RAM.

formato

Character. Formato de salida: "parquet" (default) o "csv".

verbose

Logico. Si TRUE (default), muestra el progreso detallado en consola.

Details

## Requisito previo

Requiere el motor RedatamX con el limite de extraccion ampliado. Verifique el estado del motor con censo_verificar_engine() antes de usar esta funcion.

## Compatibilidad

Compatible con bases en formato .rxdb (RedatamX). No es compatible con el formato Redatam7 (.dicx + .rbf), utilizado por censos como el de Ecuador 2022.

## Gestion de memoria

La extraccion se realiza en bloques de max_por_bloque variables. Cada bloque se procesa en un subproceso Rscript independiente que libera la memoria del motor C++ al finalizar. El proceso principal solo une los bloques leidos desde disco.

## Paises con bases RedatamX conocidas (ronda 2020)

  • Argentina 2022: usar extraer_redatam() para el pipeline completo.

  • Guatemala, Mexico, Bolivia: compatibilidad pendiente de verificacion.

Value

Invisible. La ruta al archivo generado.

See Also

extraer_redatam para el Censo Argentina 2022, censo_verificar_engine para verificar el motor.

Examples

## Not run: 
# Uso basico: convertir cualquier base .rxdb a parquet
extraer_rxdb(
  dic_path    = "/ruta/a/base.rxdb",
  output_file = "/ruta/salida/microdatos.parquet"
)

# Con bloques mas pequenos para equipos con poca memoria RAM
extraer_rxdb(
  dic_path       = "/ruta/a/base.rxdb",
  output_file    = "/ruta/salida/microdatos.parquet",
  max_por_bloque = 5
)

## End(Not run)

Cerrar un diccionario REDATAM

Description

Cerrar un diccionario REDATAM

Usage

redatam_close(dic)

Arguments

dic

Objeto diccionario retornado por redatam_open().

Value

Invisible NULL.

Examples

## Not run: 
dic <- redatam_open("/ruta/a/base.rxdb")
redatam_close(dic)

## End(Not run)

Listar entidades de un diccionario REDATAM

Description

Listar entidades de un diccionario REDATAM

Usage

redatam_entities(dic)

Arguments

dic

Objeto diccionario retornado por redatam_open().

Value

Data frame con las entidades del diccionario.

Examples

## Not run: 
dic <- redatam_open("/ruta/a/base.rxdb")
redatam_entities(dic)
redatam_close(dic)

## End(Not run)

Abrir un diccionario REDATAM

Description

Abrir un diccionario REDATAM

Usage

redatam_open(dictionary_name)

Arguments

dictionary_name

Character. Ruta al archivo de diccionario (.rxdb o .dicX).

Value

Objeto externo que representa el diccionario abierto.

Examples

## Not run: 
dic <- redatam_open("/ruta/a/base.rxdb")
redatam_close(dic)

## End(Not run)

Ejecutar una consulta REDATAM

Description

Ejecutar una consulta REDATAM

Usage

redatam_query(dic, spc, tot.omit = TRUE)

Arguments

dic

Objeto diccionario retornado por redatam_open().

spc

Character. Consulta en sintaxis REDATAM.

tot.omit

Logico. Si TRUE (default), omite filas de totales en tablas.

Value

Data frame con el resultado de la consulta.

Examples

## Not run: 
dic <- redatam_open("/ruta/a/base.rxdb")
redatam_query(dic, "FREQ PERSONA.P01")
redatam_close(dic)

## End(Not run)

Ejecutar un programa REDATAM desde archivo

Description

Ejecutar un programa REDATAM desde archivo

Usage

redatam_run(dic, file_name, tot.omit = TRUE)

Arguments

dic

Objeto diccionario retornado por redatam_open().

file_name

Character. Ruta al archivo .spc con el programa.

tot.omit

Logico. Si TRUE (default), omite filas de totales en tablas.

Value

Data frame con el resultado de la ejecucion.

Examples

## Not run: 
dic <- redatam_open("/ruta/a/base.rxdb")
redatam_run(dic, "/ruta/a/programa.spc")
redatam_close(dic)

## End(Not run)

Listar variables de una entidad REDATAM

Description

Listar variables de una entidad REDATAM

Usage

redatam_variables(dic, entity_name)

Arguments

dic

Objeto diccionario retornado por redatam_open().

entity_name

Character. Nombre de la entidad.

Value

Data frame con las variables de la entidad.

Examples

## Not run: 
dic <- redatam_open("/ruta/a/base.rxdb")
redatam_variables(dic, "PERSONA")
redatam_close(dic)

## End(Not run)