¿Siguen votando igual los diputados?

Hace seis años escribí esto. Hoy actualizo aquella entrada para crear Y, por supuesto, el código (que he tenido que reescribir en gran medida): library(xml2) library(reshape2) library(plyr) # descarga y manipulación de datos dia_votacion <- function(n.votacion){ dir.create("tmp") url <- paste("https://app.congreso.es/votacionesWeb/OpenData?sesion=", n.votacion, "&completa;=1&legislatura;=12", sep = "") download.file( url, destfile = "./tmp/votos.zip") try(unzip("./tmp/votos.zip", exdir = "./tmp"), TRUE) ficheros <- dir("./tmp", pattern = ".*xml", full.names = T) if (length(ficheros) == 0) return(NULL) res <- lapply(ficheros, function(fichero){ print(fichero) datos <- as_list(read_xml(fichero)) sesion <- datos$Resultado$Informacion$Sesion numero <- datos$Resultado$Informacion$NumeroVotacion try(datos <- ldply(datos$Resultado$Votaciones, unlist), TRUE) if (class(datos) == "try-error") return(NULL) if (class(datos) != "data.frame") return(NULL) if(nrow(datos) == 0) return(NULL) datos$sesion <- sesion datos$numero <- numero datos }) unlink("./tmp", recursive = T) # borra el directorio temporal res } tmp <- lapply(1:156, dia_votacion) datos <- tmp[!sapply(tmp, is.null)] datos <- lapply(datos, function(x) do.call(rbind, x)) datos <- do.call(rbind, datos) datos$numero <- as.numeric(unlist(datos$numero)) datos$sesion <- as.numeric(unlist(datos$sesion)) datos$asunto <- as.character(1000000 + 1000 * datos$sesion + datos$numero) datos$ind <- 0 datos$ind[datos$Voto == "No"] <- -1 datos$ind[datos$Voto == "Sí"] <- 1 tmp <- dcast(datos, asunto ~ Diputado, value.var = "ind", fill = 0) matriz_votos <- as.matrix(tmp[, -1]) rownames(matriz_votos) <- NULL colnames(matriz_votos) <- NULL heatmap(matriz_votos, xlab = "Diputados", ylab = "Asuntos", scale = "none") No sé si alguien querrá sacarle más punta a la no historia de hoy.

8 de noviembre de 2018 · Carlos J. Gil Bellosta