R y datos censales: sistematización reproducible con el paquete ARcenso

Andrea Gomez Vargas

Seminario de Ciencia Abierta

2025-07-03

ARcenso

Con el apoyo del Programa de Personas Campeonas de rOpenSci, cohorte 2023–2024, este proyecto está encabezado por Andrea Gómez Vargas, como de desarrolladora principal, junto a Emanuel Ciardullo como co-desarrollador y Luis D. Verde como mentor.

Se trata de una iniciativa ciudadanía, que surgió a partir de nuestra experiencia profesional con datos censales en el Instituto Nacional de Estadística y Censos de Argentina (INDEC).

¿Cuál es la 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.

Objetivo

Disponibilidad: de excel a tablas ordenadas en R

cuadro de excel descargado

tabla ordenada en R

¿Por qué?

Análisis históricos y memoria digital


Actualmente 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.

Importancia de los datos censales

  • 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…

R

  • R 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.

  • Existen otros paquetes de datos censales desarrollados en R (por ejemplo, censobr para Brasil), lo que crea un ecosistema que favorece la interoperabilidad y el aprendizaje compartido.

Proceso de trabajo

¿Cómo empezar? pregunta - problema

Antes de las funciones: Marco conceptual

Principios FAIR

Localizable (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.

Estructura y temas de los datos censales según la ONU


Temas 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)

Problema

Lluvia de excels y formatos no estandarizados

Fabrica de excels - trabajo en escala


Año censal Alcance nacional Alcance jurisdiccional Total
1970 21 312 333
1980 60 1176 1236


+1500 excels por los censos de 1970 y 1980

¿Cómo nos organizamos?

Flujo de trabajo



  • Descarga: Automatización del proceso de recopilación de tablas censales desde fuentes oficiales mediante web scraping.

  • Selección: Listado, clasificación y extracción de archivos y metadatos relevantes (año censal, nivel geográfico, temáticas).

  • Transformación: Conversión de tablas de Excel en conjuntos de datos ordenados (tidy) y estandarizados utilizando R base.

  • Desarrollo de funciones: Creación de funciones en R para acceder, manipular y visualizar los datos de forma eficiente.

  • Creación del paquete: Integración de los conjuntos de datos y funciones en el paquete ARcenso para facilitar su uso.

  • Control de versiones: Uso de Git y GitHub para el seguimiento de cambios y la gestión de versiones y colaboraciones.

Etapas disponibilidad del dato

Stage Census years Geographic level
1 1970 Nivel Nacional y 24 jurisdicciones
1980 Nivel Nacional
2 1991 and 2001 Nivel Nacional
3 2010 Nivel Nacional
4 2022 Nivel Nacional
5 1980 and 1991 24 jurisdicciones
6 2001 and 2010 24 jurisdicciones
7 2022 24 jurisdicciones

{ARcenso} 📦

¿Cómo usarlo?


Instalación

# install.packages("remotes")
remotes::install_github("SoyAndrea/arcenso")



Activación del paquete

library(arcenso)

Principales funciones

get_census()

Obtener tablas por año o temática censal

get_census(year = 1970, 
           topic = "CONDICIONES HABITACIONALES", 
           geolvl = "Total del país")
#> $c70_total_del_pais_poblacion_c18
#>                   regimen_de_tenencia hogares personas  cuartos
#> 1                         Propietario 3553250 13778700 11197900
#> 2            Inquilino o arrendatario 1380950  4692800  3305350
#> 3 Ocupante en relación de dependencia  353300  1402500   880050
#> 4                   Ocupante gratuito  575650  2271150  1196500
#> 5                    En otro carácter  192950   816350   419800
#> 
#> $c70_total_del_pais_poblacion_c20
#>     tama?o_hogar                     regimen_tenencia hogares
#> 1   De 1 persona                                Total  615900
#> 2   De 1 persona                          Propietario  255900
#> 3   De 1 persona             Inquilino o arrendatario  199350
#> 4   De 1 persona Ocupante con relación de dependencia   52600
#> 5   De 1 persona                    Ocupante gratuito   82100
#> 6   De 1 persona                                 Otro   25950
#> 7  De 2 personas                                Total 1125250
#> 8  De 2 personas                          Propietario  652950
#> 9  De 2 personas             Inquilino o arrendatario  302400
#> 10 De 2 personas Ocupante con relación de dependencia   49250
#> 11 De 2 personas                    Ocupante gratuito   91300
#> 12 De 2 personas                                 Otro   29350
#> 13 De 3 personas                                Total 1230600
#> 14 De 3 personas                          Propietario  744800
#> 15 De 3 personas             Inquilino o arrendatario  290650
#> 16 De 3 personas Ocupante con relación de dependencia   62150
#> 17 De 3 personas                    Ocupante gratuito  103200
#> 18 De 3 personas                                 Otro   29800
#> 19 De 4 personas                                Total 1255000
#> 20 De 4 personas                          Propietario  787900
#> 21 De 4 personas             Inquilino o arrendatario  266000
#> 22 De 4 personas Ocupante con relación de dependencia   65650
#> 23 De 4 personas                    Ocupante gratuito  102850
#> 24 De 4 personas                                 Otro   32600
#> 25 De 5 personas                                Total  818550
#> 26 De 5 personas                          Propietario  516100
#> 27 De 5 personas             Inquilino o arrendatario  157500
#> 28 De 5 personas Ocupante con relación de dependencia   48200
#> 29 De 5 personas                    Ocupante gratuito   71550
#> 30 De 5 personas                                 Otro   25200
#> 31 De 6 personas                                Total  443250
#> 32 De 6 personas                          Propietario  272000
#> 33 De 6 personas             Inquilino o arrendatario   80000
#> 34 De 6 personas Ocupante con relación de dependencia   29000
#> 35 De 6 personas                    Ocupante gratuito   45750
#> 36 De 6 personas                                 Otro   16500
#> 37 De 7 personas                                Total  276750
#> 38 De 7 personas                          Propietario  163400
#> 39 De 7 personas             Inquilino o arrendatario   44950
#> 40 De 7 personas Ocupante con relación de dependencia   19950
#> 41 De 7 personas                    Ocupante gratuito   35200
#> 42 De 7 personas                                 Otro   13250
#> 43 De 8 personas                                Total  121450
#> 44 De 8 personas                          Propietario   70600
#> 45 De 8 personas             Inquilino o arrendatario   18250
#> 46 De 8 personas Ocupante con relación de dependencia   10050
#> 47 De 8 personas                    Ocupante gratuito   16250
#> 48 De 8 personas                                 Otro    6300
#> 49 De 9 personas                                Total   76000
#> 50 De 9 personas                          Propietario   40950
#> 51 De 9 personas             Inquilino o arrendatario    9400
#> 52 De 9 personas Ocupante con relación de dependencia    7150
#> 53 De 9 personas                    Ocupante gratuito   12900
#> 54 De 9 personas                                 Otro    5600
#> 55   De 10 y más                                Total   93350
#> 56   De 10 y más                          Propietario   48650
#> 57   De 10 y más             Inquilino o arrendatario   12450
#> 58   De 10 y más Ocupante con relación de dependencia    9300
#> 59   De 10 y más                    Ocupante gratuito   14550
#> 60   De 10 y más                                 Otro    8400

check_repository()

Chequeo de tablas dispónibles por año o temática censal


check_repository(year = 1970, 
                 topic = "CONDICIONES HABITACIONALES", 
                 geolvl = "Total del país")
#>                            Archivo
#> 1 c70_total_del_pais_poblacion_c18
#> 2 c70_total_del_pais_poblacion_c20
#>                                                                                                      Titulo
#> 1    Cuadro 18. Total del país. Hogares particulares, personas y cuartos, por régimen de tenencia. Año 1970
#> 2 Cuadro 20. Total del país. Hogares particulares, por tamaño del hogar según régimen de tenencia. Año 1970

arcenso()

tablero de consulta

arcenso() # shinyapp consulta

Veamos un ejemplo práctico

Documentación

Próximos pasos y metas 💫

👣



  • mejorar la documentación
  • continuar con el roadmap por etapas y el proceso de clasificación, revisión y formateo.
  • lograr los estandares óptimos para llegar al peer-review de rOpenSci
  • sumar a mas usuarios a utilizar el paquete

Preguntas 😁

Comunidades de R

¿Qué son?


Una comunidad de usuarios es un espacio donde personas con intereses compartidos se conectan para aprender, colaborar y apoyarse mutuamente.

Gracias a la comunidad


La retroalimentación, colaboración y apoyo de comunidades de R como rOpenSci, LatinR, Rladies+ y R en Buenos Aires, así como al trabajo conjunto con colegas de distintas disciplinas como demógrafía, estadística y sociólogía, se construyó ARcenso.

La participación de la comunidad aportó:

  • Asistencia técnica para resolver desafíos de codificación y manejo de datos.

  • Validación: Garantía de la calidad y usabilidad de los datos.

  • Difusión: Promoción del uso y conocimiento del paquete.

  • Inspiración: Impulso para mejoras continuas y nuevas funcionalidades.

Aprendizajes creando ARcenso

  1. Paciencia en los procesos: Desarrollar un paquete lleva tiempo, mejorar y actualizarlo también.

  2. El valor de la organización: Tener una estructura clara para los archivos, scripts y versiones es fundamental.

  3. Aprender haciendo (y equivocándose):
    Muchas herramientas y conceptos se entienden realmente cuando se aplican en un proyecto concreto.

  4. La comunidad como sostén y motor: Compartir dudas, recibir consejos y celebrar avances con otras personas usuarias de R hace que el camino sea más ameno.

  5. La importancia de pensar en quienes lo van a usar: Documentar, nombrar con claridad y facilitar el acceso a los datos permite que el paquete sea útil no solo para quien lo creó, sino para muchas más personas.

Gracias 😁