Skip to content

Commit

Permalink
Fix to #10 + change merge function to faster *_join
Browse files Browse the repository at this point in the history
  • Loading branch information
hmeleiro committed Feb 22, 2024
1 parent 64b5d34 commit 9f2dbc3
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 20 deletions.
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ License: GPL-2
URL: https://github.com/rOpenSpain/infoelectoral
Encoding: UTF-8
LazyData: true
Imports: rlang (>= 0.4.0), dplyr (>= 1.0.0), stringr (>= 1.0.0)
Imports: rlang (>= 0.4.0), dplyr (>= 1.0.0), stringr (>= 1.0.0)
Suggests: mapSpain, tmap, tidyr, preferably, knitr
RoxygenNote: 7.1.2
RoxygenNote: 7.2.3
VignetteBuilder: knitr
2 changes: 2 additions & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ export(provincias)
importFrom(dplyr,"%>%")
importFrom(dplyr,arrange)
importFrom(dplyr,bind_rows)
importFrom(dplyr,full_join)
importFrom(dplyr,left_join)
importFrom(dplyr,mutate)
importFrom(dplyr,mutate_if)
importFrom(dplyr,relocate)
Expand Down
22 changes: 15 additions & 7 deletions R/mesas.R
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@
#' @importFrom stringr str_trim
#' @importFrom stringr str_remove_all
#' @importFrom dplyr relocate
#' @importFrom dplyr full_join
#' @importFrom dplyr left_join
#' @importFrom dplyr %>%
#' @importFrom rlang .data
#'
#' @export
mesas <- function(tipo_eleccion, anno, mes) {

### Construyo la url al zip de la elecciones
if (tipo_eleccion == "municipales") {
tipo <- "04"
Expand Down Expand Up @@ -56,8 +57,8 @@ mesas <- function(tipo_eleccion, anno, mes) {


### Junto los datos de los tres ficheros
df <- merge(dfbasicos, dfmesas, by = c("tipo_eleccion", "anno", "mes", "vuelta", "codigo_ccaa", "codigo_provincia", "codigo_municipio", "codigo_distrito", "codigo_seccion", "codigo_mesa"), all = T)
df <- merge(df, dfcandidaturas, by = c("tipo_eleccion", "anno", "mes", "codigo_partido"), all.x = T)
df <- full_join(dfbasicos, dfmesas, by = c("tipo_eleccion", "anno", "mes", "vuelta", "codigo_ccaa", "codigo_provincia", "codigo_municipio", "codigo_distrito", "codigo_seccion", "codigo_mesa"))
df <- left_join(df, dfcandidaturas, by = c("tipo_eleccion", "anno", "mes", "codigo_partido"))

### Limpieza: Quito los espacios en blanco a los lados de estas variables
df$codigo_seccion <- str_trim(df$codigo_seccion)
Expand All @@ -66,9 +67,8 @@ mesas <- function(tipo_eleccion, anno, mes) {
df$denominacion <- str_remove_all(df$denominacion, '"')

# Inserto el nombre del municipio más reciente y reordeno algunas variables
codigos_municipios <- NULL
data("codigos_municipios", envir = environment())
df <- merge(df, codigos_municipios, by = c("codigo_provincia", "codigo_municipio"), all.x = T) %>%
codigos_municipios <- infoelectoral::codigos_municipios
df <- left_join(df, codigos_municipios, by = c("codigo_provincia", "codigo_municipio")) %>%
relocate(
.data$codigo_ccaa,
.data$codigo_provincia,
Expand All @@ -87,9 +87,17 @@ mesas <- function(tipo_eleccion, anno, mes) {
.data$votos,
.data$datos_oficiales ,
.after = .data$codigo_partido_nacional
) %>%
arrange(
.data$codigo_ccaa,
.data$codigo_provincia,
.data$codigo_municipio,
.data$codigo_distrito,
.data$codigo_seccion,
.data$codigo_mesa,
-.data$votos
)

df$municipio[df$codigo_municipio == "999"] <- "CERA"

return(df)
}
16 changes: 11 additions & 5 deletions R/muni.R
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
#' @importFrom dplyr relocate
#' @importFrom dplyr %>%
#' @importFrom dplyr bind_rows
#' @importFrom dplyr full_join
#' @importFrom dplyr left_join
#' @importFrom rlang .data
#' @importFrom utils data
#' @export
Expand Down Expand Up @@ -75,18 +77,22 @@ municipios <- function(tipo_eleccion, anno, mes, distritos = FALSE) {
try(file.remove(borrar), silent = T)

### Junto los datos de los tres ficheros
df <- merge(dfbasicos, dfmunicipios, by = c("tipo_eleccion", "vuelta", "anno", "mes", "codigo_provincia", "codigo_municipio", "codigo_distrito"), all = T)
df <- merge(df, dfcandidaturas, by = c("tipo_eleccion", "anno", "mes", "codigo_partido"), all.x = T)
df <- full_join(dfbasicos, dfmunicipios,
by = c("tipo_eleccion", "vuelta", "anno", "mes",
"codigo_provincia", "codigo_municipio",
"codigo_distrito"))
df <- left_join(df, dfcandidaturas,
by = c("tipo_eleccion", "anno", "mes", "codigo_partido"))

### Limpieza: Quito los espacios en blanco a los lados de estas variables
df$siglas <- str_trim(df$siglas)
df$denominacion <- str_trim(df$denominacion)
df$denominacion <- str_remove_all(df$denominacion, '"')

# Inserto el nombre del municipio más reciente y reordeno algunas variables
codigos_municipios <- NULL
data("codigos_municipios", envir = environment())
df <- merge(df, codigos_municipios, by = c("codigo_provincia", "codigo_municipio"), all.x = T) %>%
codigos_municipios <- infoelectoral::codigos_municipios
df <- left_join(df, codigos_municipios,
by = c("codigo_provincia", "codigo_municipio")) %>%
relocate(
.data$codigo_ccaa,
.data$codigo_provincia,
Expand Down
13 changes: 7 additions & 6 deletions R/provincias.R
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
#' @importFrom stringr str_trim
#' @importFrom stringr str_remove_all
#' @importFrom dplyr relocate
#' @importFrom dplyr full_join
#' @importFrom dplyr left_join
#' @importFrom dplyr %>%
#' @importFrom rlang .data
#'
Expand All @@ -29,7 +31,6 @@ provincias <- function(tipo_eleccion, anno, mes) {
stop('The argument tipo_eleccion must take one of the following values: "congreso", "municipales", "europeas"')
}


urlbase <- "https://infoelectoral.interior.gob.es/estaticos/docxl/apliextr/"
url <- paste0(urlbase, tipo, anno, mes, "_TOTA", ".zip")

Expand All @@ -40,9 +41,6 @@ provincias <- function(tipo_eleccion, anno, mes) {
unzip(temp, overwrite = T, exdir = tempd)





### Construyo las rutas a los ficheros DAT necesarios
codigo_eleccion <- paste0(substr(anno, nchar(anno)-1, nchar(anno)), mes)
todos <- list.files(tempd, recursive = T)
Expand All @@ -62,8 +60,11 @@ provincias <- function(tipo_eleccion, anno, mes) {
try(file.remove(borrar), silent = T)

### Junto los datos de los tres ficheros
df <- merge(dfcandidaturas_basicos, dfcandidaturas, by = c("tipo_eleccion", "anno", "mes", "codigo_partido"), all = T)
df <- merge(dfbasicos, df, c("tipo_eleccion", "anno", "mes", "vuelta", "codigo_ccaa", "codigo_provincia", "codigo_distrito_electoral"), all.x = T)
df <- full_join(dfcandidaturas_basicos, dfcandidaturas,
by = c("tipo_eleccion", "anno", "mes", "codigo_partido"))
df <- left_join(dfbasicos, df,
by = c("tipo_eleccion", "anno", "mes", "vuelta", "codigo_ccaa",
"codigo_provincia", "codigo_distrito_electoral"))



Expand Down

0 comments on commit 9f2dbc3

Please sign in to comment.