Taller práctico en R
UMET - NIS
“El censo de población es la operación que consiste en recopilar, elaborar, evaluar, analizar y difundir, de manera simultánea, datos demográficos, económicos y sociales de todas las personas de un país o de una parte bien delimitada de un país, en un momento determinado.”1
Universalidad: cubrir a toda la población y/o todas las viviendas.
Simultaneidad: referirse a la misma fecha de referencia.
Periodicidad: realizarse en intervalos regulares, generalmente cada 10 años.
Individualidad: registrar datos de cada persona y cada vivienda de manera separada.
Es una herramienta clave para entender las caracteristicas y necesidades de la población.
Proporcionan datos esenciales para la planificación y el desarrollo de las políticas públicas.
Planificación social y económica
Investigación académica y estudios sociales
Investigaciones de mercado y mucho más…
RR es una herramienta orientada al trabajo estadístico y análisis de datos.
Es un software libre y de código abierto, lo que facilita la colaboración y reproducibilidad.
Es un ecosistema que favorece la interoperabilidad y el aprendizaje compartido.
Toda la información de los censos en Argentina está en censo.gob.ar
Logos censales de 1970 a 2022
RARcensoEs una iniciativa ciudadana que nació de nuestra experiencia profesional con datos censales en el INDEC, motivada por la necesidad de contar con datos accesibles y ordenados, e inspirada en el espíritu colaborativo de la comunidad R. Con el apoyo del Programa de Campeones de rOpenSci (2023–2024).
propuesta?Generar un paquete que permita disponer de los datos oficiales de los censos nacionales de población en Argentina provenientes del INDEC desde 1970 hasta 2022, homogeneizados, ordenados y listos para usar.
Disponibilidad: de excel a tablas ordenadas en R


Análisis históricos y memoria digitalActualmente los resultados históricos censales de 1970, 1980, 1991, 2001, 2010 y 2022 están disponibles en distintos formatos a través de libros físicos, PDFs, archivos en formato excel o en REDATAM, sin contar con un sistema o formato unificado que permita trabajar con los datos de estos seis periodos censales como base de datos.
Marco conceptualFAIRLocalizable (Findable):
Datos censales centralizados que abarcan seis periodos censales nacionales (1970–2022)
Accesible (Accessible):
Conjuntos de datos censales públicos, homogenizados, disponibles en formatos abiertos y acompañados de documentación y metadatos completos.
Interoperable (Interoperable):
Tablas ordenadas (formato tidy) y bien estructuradas que permiten una integración sencilla con otros conjuntos de datos.
Reutilizable (Reusable):
Incluye descripciones detalladas de variables, codificación estandarizada, licencias abiertas y estructuras de datos reproducibles que facilitan su uso a largo plazo y la comparación entre estudios.
ONUTemas del Censo Núcleo: Variables esenciales (ej.: edad, sexo, población)
Núcleo derivado: Variables calculadas (ej.: tasas de fecundidad)
Adicionales: Temas específicos del país (ej.: religión)
Unidades Conceptuales Población: Personas individuales
Vivienda: Unidades habitacionales físicas
Hogar: Personas que comparten una vivienda
Cobertura Geográfica
Nacional: Total del país
Jurisdicciones: (23 provincias de Argentina y la Ciudad Autónoma de Buenos Aires)
ARcenso 📦geo_metadata: Consultar códigos geográficos oficiales
census_metadata: Explorar el catálogo de tablas censales disponibles
check_repository(): Verificar tablas disponibles según año, ubicación geográfica o temática
get_census(): Obtener tablas censales
arcenso_app(): Explorar datos mediante un tablero interactivo
En esta parte del taller vamos a trabajar con datos censales para construir visualizaciones e indicadores demográficos clásicos tomando como base la vignette Construyendo indicadores demográficos de ARcenso.

libraryesto realizo cada vez que use R
check_repository() - ¿Qué necesitamos?Helpers:
geo_metadata&census_metadata
check_repository(topic = "estructura", geo_code = "00")
#> # A tibble: 4 × 3
#> id_cuadro anio titulo
#> <chr> <dbl> <chr>
#> 1 1970_00_estructura_01 1970 Cuadro 1. Total del país. Población total, por gr…
#> 2 1980_00_estructura_01 1980 Cuadro G3. Centros urbanos según tamaño y poblaci…
#> 3 1980_00_estructura_02 1980 Cuadro G1. Total del país. Población total según …
#> 4 1980_00_estructura_03 1980 Cuadro G2. Total del país. Población según sexo y…arcenso_app() - tablero de consultaget_census() & dplyrpob_1980 <- poblacion_1980 |>
filter(
urbano_rural == "Total",
sexo != "Total",
edad != "Total"
) |>
mutate(
censo = 1980,
edad_num = ifelse(edad == "85 y más", 85, as.numeric(edad)),
grupo_edad = case_when(
edad_num %in% c(0:4) ~ "00-04",
edad_num %in% c(5:9) ~ "05-09",
edad_num %in% c(10:14) ~ "10-14",
edad_num %in% c(15:19) ~ "15-19",
edad_num %in% c(20:24) ~ "20-24",
edad_num %in% c(25:29) ~ "25-29",
edad_num %in% c(30:34) ~ "30-34",
edad_num %in% c(35:39) ~ "35-39",
edad_num %in% c(40:44) ~ "40-44",
edad_num %in% c(45:49) ~ "45-49",
edad_num %in% c(50:54) ~ "50-54",
edad_num %in% c(55:59) ~ "55-59",
edad_num %in% c(60:64) ~ "60-64",
edad_num %in% c(65:69) ~ "65-69",
edad_num %in% c(70:74) ~ "70-74",
edad_num %in% c(75:79) ~ "75-79",
edad_num %in% c(80:84) ~ "80-84",
TRUE ~ "85 y más"
)
) |>
select(-edad, -urbano_rural, -edad_num) |>
select(censo, sexo, grupo_edad, poblacion)##Construcción de la base integrada
poblacion <- bind_rows(pob_1970, pob_1980) |>
mutate(
poblacion = as.numeric(poblacion),
sexo = factor(sexo, levels = c("Varones", "Mujeres")),
grupo_edad = factor(
grupo_edad,
levels = c(
"00-04", "05-09", "10-14", "15-19", "20-24",
"25-29", "30-34", "35-39", "40-44", "45-49",
"50-54", "55-59", "60-64", "65-69", "70-74",
"75-79", "80-84", "85 y más"))
)A partir de esta base integrada, exploramos algunos cambios en la estructura de la población entre 1970 y 1980 mediante visualizaciones e indicadores demográficos.
Calculamos la distribución relativa de la población dentro de cada censo para comparar la estructura poblacional entre 1970 y 1980 independientemente del tamaño total de la población.
ggplot2# Pirámide comparativa
piramide_plot <- piramide |>
ggplot(aes(x = poblacion_rel, y = grupo_edad, fill = sexo)) +
geom_col() +
facet_wrap(~ censo, ncol = 2) +
scale_fill_manual(values = c("#00f59b", "#7014f2")) +
scale_x_continuous(
labels = function(x) paste0(abs(round(x * 100, 1)), "%"),
limits = c(-0.15, 0.15),
breaks = seq(-0.15, 0.15, by = 0.05)) +
labs(
title = "Estructura de la población por sexo y grupo quinquenal de edad",
subtitle = "Total del país. Años 1970 y 1980",
x = "Porcentaje",
y = "Grupo quinquenal de edad",
caption = "Fuente: INDEC, Censo Nacional de Población 1970 y 1980. Procesado con ARcenso.",
fill = "Sexo") +
theme_bw() +
theme(
legend.position = "bottom",
strip.text = element_text(face = "bold", size = 12) )Compara la cantidad de personas mayores (65 años y más) con la población más joven (0 a 14 años). Permite ver de forma simple si la población tiene más peso en las edades jóvenes o en las edades más avanzadas.
envejecimiento <- poblacion |>
group_by(censo) |>
summarise(
poblacion_0a14
= sum(poblacion[grupo_edad %in% c("00-04", "05-09", "10-14")]),
poblacion_65ymas =
sum(poblacion[grupo_edad %in% c("65-69", "70-74", "75-79", "80-84", "85 y más")]),
indice =
round(poblacion_65ymas / poblacion_0a14 * 100, 0))gttabla_envejecimiento <- gt(envejecimiento) |>
tab_header(
title = "Comparación del índice de envejecimiento",
subtitle = "Argentina. Años 1970 y 1980") |>
tab_spanner(
label = "Población",
columns = c(poblacion_0a14, poblacion_65ymas) ) |>
fmt_number(
columns = c(poblacion_0a14, poblacion_65ymas),
decimals = 0,
sep_mark = ".",
dec_mark = "," ) |>
cols_label(
poblacion_0a14 = "0 a 14 años",
poblacion_65ymas = "65 años y más",
indice = "Índice") |>
tab_source_note(
source_note =
md("**Fuente:** elaboración propia en base a datos de INDEC (Censos Nacionales de Población 1970 y 1980)."))Este indicador muestra cuántas mujeres hay por cada 100 varones en un grupo especifico de población. En este caso, lo analizamos en edades mayores a 60 años.
feminidad <- poblacion |>
filter(
grupo_edad %in% c("60-64", "65-69", "70-74", "75-79", "80-84", "85 y más")
) |>
group_by(censo, grupo_edad, sexo) |>
summarise(poblacion = sum(poblacion), .groups = "drop") |>
pivot_wider(names_from = sexo, values_from = poblacion) |>
mutate(
indice_feminidad = round(Mujeres / Varones * 100, 0)
) |>
select(-Varones, -Mujeres)ggplot2 feminidad_plot <- feminidad |>
pivot_wider(
names_from = censo,
values_from = indice_feminidad,
names_prefix = "censo_"
) |>
ggplot(aes(y = grupo_edad)) +
geom_segment(
aes(x = censo_1970, xend = censo_1980, yend = grupo_edad),
color = "grey85",
linewidth = 1) +
geom_point(aes(x = censo_1970), color = "#ff0f7b", size = 3) +
geom_point(aes(x = censo_1980), color = "#f89b29", size = 3) +
geom_text(aes(x = censo_1970, label = censo_1970), hjust = 1.4, size = 3) +
geom_text(aes(x = censo_1980, label = censo_1980), hjust = -0.4, size = 3) +
labs(
x = "Mujeres por cada 100 varones",
y = "Grupo de edad",
title = "Cambio en el índice de feminidad de la población de 60 años y más",
subtitle = "Argentina. Años 1970 y 1980",
caption = "Fuente: INDEC, Censo Nacional de Población 1970 y 1980. Procesado con ARcenso."
) +
theme_minimal()Es un indicador clásico utilizado para medir la llamada atracción de dígitos.
edad_simple_1980 <- get_census(id = "1980_00_estructura_03") |>
filter(
urbano_rural == "Total",
sexo == "Total",
edad != "Total",
edad != "85 y más") |>
mutate(
edad = as.numeric(edad),
poblacion = as.numeric(poblacion))
whipple <- edad_simple_1980 |>
filter(edad >= 23, edad <= 62) |>
summarise(
pob_multiplos_5 = sum(poblacion[edad %in% seq(25, 60, by = 5)]),
pob_total = sum(poblacion),
indice_whipple = round(pob_multiplos_5 / (pob_total / 5) * 100, 1) )tabla_whipple <- gt(whipple) |>
tab_header(
title = "Índice de Whipple",
subtitle = "Argentina. Censo 1980 (población de 23 a 62 años)") |>
fmt_number(
columns = c(pob_multiplos_5, pob_total),
decimals = 0,
sep_mark = ".",
dec_mark = ",") |>
cols_label(
pob_multiplos_5 = "Población en edades múltiplo de 5",
pob_total = "Población total (23 a 62 años)",
indice_whipple = "Índice") |>
tab_source_note(
source_note =
md("**Fuente:** elaboración propia en base a datos de INDEC (Censo Nacional de Población 1980). Escala de referencia: <105 muy preciso, 105–124 aceptable, ≥125 deficiente."))
| Índice de Whipple | ||
|---|---|---|
| Argentina. Censo 1980 (población de 23 a 62 años) | ||
| Población en edades múltiplo de 5 | Población total (23 a 62 años) | Índice |
| 2.801.322 | 13.134.697 | 106.6 |
| Fuente: elaboración propia en base a datos de INDEC (Censo Nacional de Población 1980). Escala de referencia: <105 muy preciso, 105–124 aceptable, ≥125 deficiente. | ||




Si utilizas ARcenso en investigaciones, publicaciones o proyectos, te invitamos a citar el paquete
citation("arcenso")
#> To cite arcenso in publications use:
#>
#> Gomez Vargas A, Ciardullo E (2026). _ARcenso: Data from Argentina's
#> Population Census_. R package version 0.2.1,
#> <https://soyandrea.github.io/arcenso/>.
#>
#> A BibTeX entry for LaTeX users is
#>
#> @Manual{,
#> title = {ARcenso: Data from Argentina's Population Census},
#> author = {Andrea {Gomez Vargas} and Emanuel Ciardullo},
#> year = {2026},
#> note = {R package version 0.2.1},
#> url = {https://soyandrea.github.io/arcenso/},
#> }Verificar la información en la fuente oficial nunca está de más
1970
1980
2022