# Uso general de censo2022arg

## Introduccion

El paquete `censo2022arg` permite acceder y trabajar libremente con los microdatos del Censo Nacional de Poblacion, Hogares y Viviendas 2022 de Argentina sin necesidad de conocer la sintaxis del software REDATAM. Una vez extraidos los datos, el investigador puede analizarlos usando los paquetes de R de uso habitual: `dplyr`, `ggplot2`, `data.table`, `survey`, `spdep`, o cualquier otro del ecosistema R.

El paquete se encarga de todo el proceso tecnico: extrae los microdatos desde las bases REDATAM distribuidas oficialmente por el INDEC, reconstruye los identificadores jerarquicos (vivienda, hogar, persona), etiqueta las variables con los diccionarios oficiales y verifica la integridad de los datos contra los totales publicados. El investigador recibe un objeto R estandar listo para analizar.

El flujo de trabajo tiene seis pasos que se realizan en orden, y la mayoria solo deben ejecutarse una vez.

    library(censo2022arg)

## Paso 1: Configurar el directorio de datos

El primer paso es elegir un directorio donde se guardaran todos los archivos del censo: bases REDATAM, diccionarios y microdatos extraidos. Puede ser cualquier ubicacion en su equipo o disco externo.

    # Configurar para todas las sesiones futuras
    censo_configurar("/ruta/a/mis/datos/censo2022", persistent = TRUE)

Para verificar el estado actual de la configuracion en cualquier momento:

    censo_info()

## Paso 2: Preparar el motor de extraccion

El motor REDATAM incluido en el paquete `redatamx` tiene un limite interno de 100 registros por consulta. Para extraer el censo completo es necesario ampliar ese limite. La funcion `censo_verificar_engine()` verifica el estado del motor y, si es necesario, muestra las instrucciones exactas para prepararlo. Este paso se realiza una sola vez.

    censo_verificar_engine()

## Paso 3: Descargar las bases del INDEC

Las bases REDATAM del Censo 2022 se descargan directamente desde el portal oficial del INDEC. El paquete tambien descarga los diccionarios de variables y la documentacion metodologica.

    # Descargar todo (recomendado la primera vez)
    censo_descargar()

    # Solo las bases REDATAM (~500 MB)
    censo_descargar(que = "bases")

    # Solo los diccionarios de variables
    censo_descargar(que = "metadatos")

## Paso 4: Extraer los microdatos

La extraccion procesa las bases REDATAM provincia por provincia y genera archivos en formato Parquet para cada una. El proceso es retomable: si se interrumpe, al volver a ejecutar continua desde donde quedo.

    # Extraer todas las provincias
    extraer_redatam()

    # Extraer solo una provincia (util para probar)
    extraer_redatam(provincias = 66)  # Salta

    # Extraer varias provincias
    extraer_redatam(provincias = c(66, 38, 34))  # Salta, Jujuy, Formosa

    # Con bloques mas pequenos para equipos con poca RAM
    extraer_redatam(max_por_bloque = 5)

Para cada provincia se generan cinco archivos:

- `provincia_Personas.parquet` – una fila por persona
- `provincia_Hogares.parquet` – una fila por hogar
- `provincia_Viviendas.parquet` – una fila por vivienda particular
- `provincia_colectivas.parquet` – personas en viviendas colectivas
- `provincia_PO_VP.parquet` – base completa combinada

## Paso 5: Etiquetar las variables

Los archivos extraidos tienen nombres de columna en formato tecnico del motor REDATAM (por ejemplo `p01_0`, `edad_2`). La funcion `censo_etiquetar()` aplica los diccionarios oficiales del INDEC para convertir esos nombres en nombres legibles (`P01`, `EDAD`) y transforma las variables categoricas en factores con sus etiquetas de valor.

    # Etiquetar todas las provincias
    censo_etiquetar()

    # Solo algunas provincias
    censo_etiquetar(provincias = c(66, 38))

    # Solo la base de Personas
    censo_etiquetar(bases = "Personas")

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

## Paso 6: Leer y analizar los datos

Una vez extraidos y etiquetados, los microdatos se leen con `censo_leer()`. Los filtros y la seleccion de columnas se aplican usando Apache Arrow antes de cargar los datos en memoria, lo que permite trabajar con subconjuntos sin necesidad de disponer de la RAM suficiente para el conjunto completo. El resultado es un `data.frame`, `data.table` o `tibble` estandar de R, compatible con cualquier paquete del ecosistema.

    # Personas de Salta
    personas <- censo_leer(base = "Personas", provincias = 66)

    # Hogares de Salta y Jujuy
    hogares <- censo_leer(base = "Hogares", provincias = c(66, 38))

    # Viviendas de Formosa
    viviendas <- censo_leer(base = "Viviendas", provincias = 34)

### Seleccion de columnas

    # Solo algunas variables
    personas <- censo_leer(
      base      = "Personas",
      provincias = 66,
      columnas  = c("EDAD", "P02", "CONDACT", "NIVEL_ED", "IDRADIO")
    )

### Filtros de filas

Los filtros se evaluan directamente sobre el archivo Parquet sin cargar todo el dataset en memoria:

    # Personas mayores de 18
    mayores <- censo_leer(
      base       = "Personas",
      provincias = 66,
      filtro     = quote(EDAD >= 18)
    )

    # Personas ocupadas
    ocupados <- censo_leer(
      base       = "Personas",
      provincias = c(66, 38),
      columnas   = c("EDAD", "P02", "CONDACT", "IDRADIO"),
      filtro     = quote(CONDACT == 1)
    )

### Formato de salida

    # Como data.table (para grandes volumenes de datos)
    personas_dt <- censo_leer(
      base      = "Personas",
      provincias = 66,
      formato   = "data.table"
    )

    # Como tibble (para flujos tidyverse)
    personas_tbl <- censo_leer(
      base      = "Personas",
      provincias = 66,
      formato   = "tibble"
    )

## Ejemplo de analisis

Una vez que los datos estan en R como un objeto estandar, el investigador puede usar cualquier paquete habitual sin restricciones. El siguiente ejemplo calcula la tasa de actividad por sexo y grupo de edad en Salta usando `dplyr` – exactamente igual que con cualquier otro dataset de R.

    library(censo2022arg)
    library(dplyr)
    library(ggplot2)

    # Leer personas en edad activa con filtro previo a la carga en RAM
    personas <- censo_leer(
      base       = "Personas",
      provincias = 66,
      columnas   = c("P02", "EDAD", "CONDACT"),
      filtro     = quote(EDAD >= 14)
    )

    # Tasa de actividad por sexo y grupo de edad -- flujo dplyr estandar
    tasa_actividad <- personas |>
      mutate(
        grupo_edad = cut(EDAD,
          breaks = c(14, 24, 34, 44, 54, 64, Inf),
          labels = c("14-24", "25-34", "35-44", "45-54", "55-64", "65+"),
          right  = FALSE
        )
      ) |>
      group_by(P02, grupo_edad) |>
      summarise(
        activos = sum(CONDACT == 1, na.rm = TRUE),
        total   = n(),
        tasa    = round(activos / total * 100, 1),
        .groups = "drop"
      )

    # Visualizar con ggplot2 -- sin salir del ecosistema R
    ggplot(tasa_actividad, aes(x = grupo_edad, y = tasa, fill = P02)) +
      geom_col(position = "dodge") +
      labs(
        title = "Tasa de actividad por sexo y grupo de edad -- Salta 2022",
        x     = "Grupo de edad",
        y     = "Tasa de actividad (%)",
        fill  = "Sexo",
        caption = "Fuente: Censo Nacional 2022 -- INDEC"
      ) +
      theme_minimal()

El mismo flujo funciona con `data.table`, `survey` para estimaciones con diseno muestral, `spdep` para analisis espacial a nivel de radio censal, o cualquier otro paquete del ecosistema R.

## Nota legal

Los datos del Censo 2022 estan protegidos por la Ley N 17.622 de secreto estadistico. Su uso esta permitido exclusivamente con fines estadisticos y de investigacion. Este paquete no distribuye datos del censo – los datos se descargan directamente desde el portal oficial del INDEC (https://www.indec.gob.ar).