Skip to content

Instantly share code, notes, and snippets.

@leobarone
Last active October 27, 2016 17:30
Show Gist options
  • Save leobarone/73211ddb5b4bc2b375659f37ec2c2c7d to your computer and use it in GitHub Desktop.
Save leobarone/73211ddb5b4bc2b375659f37ec2c2c7d to your computer and use it in GitHub Desktop.
rm(list=ls())
library(XML)
urlTSE <- "http://www.tse.jus.br/hotSites/pesquisas-eleitorais/eleitorado_anos/perfil_eleitorado_anos/2016.html"
pagina <- xmlRoot(htmlParse(readLines(urlTSE)))
links.zip <- xpathSApply(pagina, "//a[@target = '_blank']", xmlGetAttr, name = 'href')
dir.create("~/perfil_eleitorado")
pasta <- "~/perfil_eleitorado/"
setwd(pasta)
perfil.eleitorado <- data.frame()
for (link in links.zip){
uf <- substr(link, 98, 99)
nome.arquivo <- paste0(uf , ".zip")
print(paste("Abrindo arquivo de", uf))
download.file(link, nome.arquivo)
unzip(zipfile = nome.arquivo)
for (arquivo in list.files()){
if (substr(arquivo, nchar(arquivo) - 2, nchar(arquivo)) == "txt") {
# Escolher colunas no colchete ao final da linha abaixo
# Dexei como exemplo as colunas 2, 3, 5, 7 e 11
perfil.uf <- read.table(arquivo, sep=";", quote="\"", fileEncoding = "latin1")[,c( 4, 5, 7, 8, 14, 17)]
perfil.eleitorado <- rbind(perfil.eleitorado, perfil.uf)
}
file.remove(arquivo)
}
print(paste("Arquivo de", uf, "aberto com sucesso"))
print("")
}
names(perfil.eleitorado) <- c("uf", "munic", "zona", "secao", "escolaridade", "eleitores")
perfil.eleitorado.aggreg <- aggregate(perfil.eleitorado$eleitores,
by = list(perfil.eleitorado$uf,
perfil.eleitorado$munic,
perfil.eleitorado$zona,
perfil.eleitorado$secao,
perfil.eleitorado$escolaridade),
FUN = "sum")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment