README.md

Travis build status

paso2019

Paquete de datos con los resultados del escrutinio de las "Paso 2019" de Argentina, tal cual como los publica la Dirección Nacional Electoral (DINE).

Contenido

Datos

Los datos están actualizados al 12/08/2019 05:03:06 (-03:00 UTC) según informa la DINE.

Importante:

Hay algunas inconsistencias en los datos, que en algún momento puede llamar la atención. Por empezar hay una diferencia entre las tres tablas de mesas descargadas del sitio oficial de los resultados:

Establecimientos

Los datos de los locales o establecimientos de votación no forman parte de los archivos compartidos por el sitio. Estos datos se construyeron por un trabajo de "scrapping" del sitio web, por lo que hay que tomarlos con cuidado. En principio, no han quedado mesas sin relacionar a un establecimiento, y un muestreo aleatorio da resultados consistentes. Para controlar todos los datos de una mesa en particular, se puede hacer:

library("tidyverse")
library("paso2019")

votos %>%
  left_join(mesas, by = "id_mesa") %>%
  filter(codigo_mesa == "2102208133X") %>%
  left_join(circuitos, by = "id_circuito") %>%
  left_join(secciones, by = "id_seccion") %>%
  left_join(distritos, by = "id_distrito") %>%
  left_join(listas, by = "id_lista") %>%
  left_join(agrupaciones, by = "id_agrupacion") %>%
  left_join(meta_agrupaciones, by = "id_meta_agrupacion") %>%
  left_join(categorias, by = "id_categoria") %>%
  left_join(establecimientos, by = "id_establecimiento") %>%
  select(nombre_distrito,
         nombre_seccion,
         nombre_circuito,
         nombre_establecimiento,
         codigo_mesa,
         nombre_categoria,
         nombre_meta_agrupacion,
         votos) %>%
  View()

Modelo original

El modelo original representa las tablas originales distribuidas por la justicia electoral, tal cual se pueden acceder desde: http://descargaresultados.s3-sa-east-1.amazonaws.com/resultados.zip. Los archivos (de tipo DSV), fueron importados sin ninguna transformación importante, son data.frames básicos, la mayoría de las columnas son character, salvo las que representan cantidades de votos que son numéricas.

Requerimiento de memoria total: 512.7Mb

Modelo nuevo

Modelo nuevo

Son tablas derivadas de las anteriores. La idea es transformar los datos en tablas que respeten mejor un modelo relacional. Estas tablas están en pleno procesos de creación y modificación, eventualmente podrá cambiar algo.

Requerimiento de memoria total: 120.1 Mb

Otros

Este modelo elimina mucha de la redundancia de datos de los archivos originales, se generaron también id's numéricos para cada tabla, y así reducir los requerimientos de memoria. Claro, que las consultas requieren ir agregando varias relaciones. Por ejemplo, para consultar el total de votos de cada agrupación en la elección de presidente, habría que hacer algo así:

library("tidyverse")
library("paso2019")

votos %>% 
  left_join(listas, by = "id_lista") %>% 
  left_join(agrupaciones, by = "id_agrupacion") %>% 
  left_join(categorias, by = "id_categoria") %>% 
  left_join(meta_agrupaciones, by = "id_meta_agrupacion") %>% 
  filter(nombre_categoria == "Presidente y Vicepresidente de la República") %>% 
  group_by(nombre_meta_agrupacion, votos_totales) %>% 
  summarise(votos = sum(votos)) %>% 
  mutate(porcentaje = votos / votos_totales) %>% 
  select(nombre_meta_agrupacion, votos, porcentaje ) %>% 
  arrange(-votos)

# A tibble: 11 x 3
# Groups:   nombre_meta_agrupacion [11]
   nombre_meta_agrupacion                            votos porcentaje
   <chr>                                             <dbl>      <dbl>
 1 FRENTE DE TODOS                                11622428    0.477  
 2 JUNTOS POR EL CAMBIO                            7825208    0.321  
 3 CONSENSO FEDERAL                                2007035    0.0823 
 4 VOTOS en BLANCO                                  758988    0.0311 
 5 FRENTE DE IZQUIERDA Y DE TRABAJADORES - UNIDAD   697776    0.0286 
 6 FRENTE NOS                                       642662    0.0264 
 7 UNITE POR LA LIBERTAD Y LA DIGNIDAD              533100    0.0219 
 8 MOVIMIENTO AL SOCIALISMO                         173585    0.00712
 9 FRENTE PATRIOTA                                   58575    0.00240
10 MOVIMIENTO DE ACCION VECINAL                      36324    0.00149
11 PARTIDO AUTONOMISTA                               32562    0.00134

Los procesos de importación, tanto de los archivos, como los de la "captura" de los datos de la web, como así también la creación del nuevo modelo, puede consultarse y verificarse mirando los scripts (en el orden de ejecución):

Funciones públicas

Instalación

Como cualquier otro paquete mantenido en github.com, el proceso es relativamente sencillo. En primer lugar necesitaremos devtools:

install.packages("devtools")

una vez instalada este paquete, simplemente podremos instalar paso2019 directamente desde el código fuente del repositorio:

devtools::install_github("pmoracho/paso2019")

Requerimientos

Ninguno en particular, salvo devtools para poder instalar este paquete, son datos, y eventualmente alguna que otra función que en principio intentaré que no requiera ningún paquete extra.

Actualizaciones



pmoracho/paso2019 documentation built on Nov. 5, 2019, 12:56 a.m.