Convierte los códigos numéricos de las columnas categóricas en factores con las etiquetas en español del diccionario oficial del INE. Detecta automáticamente el censo (1976, 1992, 2001, 2012 o 2024) a partir de los nombres de columna del data frame.
Arguments
- df
Un data.frame (resultado de `collect()`, `DBI::dbGetQuery()` u otro).
- columnas
Vector de caracteres con los nombres de columnas a etiquetar. Si `NULL` (por defecto), etiqueta todas las columnas categóricas presentes.
- anio
Entero. Año del censo: `1976`, `1992`, `2001`, `2012` o `2024`. Si `NULL` (por defecto), se detecta automáticamente a partir de los nombres de columna del data frame.
Value
El mismo `df` con las columnas categóricas convertidas a `factor` con las etiquetas del diccionario. Las columnas no encontradas en el diccionario se devuelven sin cambios.
Details
La detección automática del censo funciona comparando los nombres de columna del data frame con los de cada codebook. Dado que cada censo usa una convención de nombrado única (p.ej. `p25_sexo` en 2024 vs `P25` en 1992), la detección es confiable incluso después de `count()` o `filter()`.
Los valores que no coinciden con ningún código del diccionario (incluyendo `NA`) quedan como `NA` en el factor resultante. Para ver los códigos disponibles de una variable usa `codebook_valores()`.
Con datos de [get_temporal()] / [get_temporal_vivienda()] se usan las etiquetas **armonizadas** (no las de un censo concreto). Esto se detecta por la columna `anio`; conviene conservarla al resumir. Para variables cuyo nombre también existe como columna cruda (`nivel_edu`, `area`, `pea`, `pet`), la columna `anio` es necesaria para distinguir datos temporales de datos crudos del CPV-2024.
Para volver de etiquetas a códigos: “`r as.integer(df$p25_sexo) # → 1, 2 as.character(df$p25_sexo) # → "Mujer", "Hombre" “`
Examples
# Censo 2024 — detección automática
if (FALSE) { # \dontrun{
get_personas_2024(departamento = "Pando", as = "tibble") |>
etiquetar_valores() |>
head(3)
} # }
# Censo 1992 — detección automática
if (FALSE) { # \dontrun{
get_personas_1992(departamento = "07", as = "tibble") |>
dplyr::count(P25) |>
etiquetar_valores()
} # }
# Año explícito como escape hatch
if (FALSE) { # \dontrun{
df |> etiquetar_valores(anio = 1992)
} # }
