Created
November 5, 2020 16:11
-
-
Save pmarkun/e23a05eb79b93627bf7e43158cae73c4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Script para verificar candidatas que já se candidataram em 16 e 18 e calcula número de votos. | |
# Baixar RStudio https://rstudio.com/products/rstudio/download/#download e R https://cran.rstudio.com/bin/windows/base/ | |
# Carrega as bibliotecas necessárias. | |
# data.table -> tem uma função para ler arquivos csv grandes mais rapidamente | |
# dplyr -> tem o pipe ( %>% ) que permite encadear manipulações de dados e funções como group_by, select e filter para manipular os dados | |
# Para instalar você usa 'install.packages("nomedopacote")' | |
library(data.table) | |
library(dplyr) | |
# Lê os arquivos de candidatos das diferentes eleições e filtra por gênero e cargo | |
# Os arquivo estão disponíveis no repositório do tse -> https://www.tse.jus.br/eleicoes/estatisticas/repositorio-de-dados-eleitorais-1/repositorio-de-dados-eleitorais | |
# Onde esta o "~/devel/blablabla" você troca pelo lugar onde o arquivo esta salvo no seu computador. | |
# O parametro "sep" é para definir o separador, que no caso dos arquivos do TSE é ; | |
# O parametro encoding é a codificação dos acentos (isso esta detalhado no PDF que vem junto com os arquivos) | |
candidatos2020 <- fread("~/devel/datasets/eleicoes/2020/candidatos/consulta_cand_2020_BRASIL.csv", sep=";", encoding="Latin-1") %>% | |
filter(DS_GENERO=="FEMININO", DS_CARGO=="VEREADOR") | |
candidatos2018 <- fread("~/devel/datasets/eleicoes/2018/candidatos/consulta_cand_2018_BRASIL.csv", sep=";", encoding = "Latin-1") %>% | |
filter(DS_GENERO=="FEMININO", DS_CARGO %in% c('DEPUTADO ESTADUAL', 'DEPUTADO FEDERAL')) | |
candidatos2016 <- fread("~/devel/datasets/eleicoes/2016/candidatos/consulta_cand_2016_BRASIL.csv", sep=";", encoding = "Latin-1") %>% | |
filter(DS_GENERO=="FEMININO", DS_CARGO=="VEREADOR") | |
# Lê os arquivos de votação dos candidatos e soma os votos por candidato | |
# Os arquivos estão no mesmo repositório do TSE | |
votos2016_tmp <- fread(paste0("~/devel/datasets/eleicoes/2016/votacao/votacao_candidato_munzona_2016_BRASIL.csv"), sep=";", encoding="Latin-1") %>% | |
group_by(SQ_CANDIDATO) %>% | |
summarise(VOTOS_2016=sum(QT_VOTOS_NOMINAIS)) | |
votos2018_tmp <- fread(paste0("~/devel/datasets/eleicoes/2018/votacao/votacao_candidato_munzona_2018_BRASIL.csv"), sep=";", encoding = "Latin-1") %>% | |
group_by(SQ_CANDIDATO) %>% | |
summarise(VOTOS_2018=sum(QT_VOTOS_NOMINAIS)) | |
# Junta os arquivos de votos e candidatos e seleciona as colunas que queremos | |
candidatos2016_tmp <- candidatos2016 %>% | |
select(NM_CANDIDATO,NM_PARTIDO,SG_UF,NM_UE,NR_CPF_CANDIDATO, SQ_CANDIDATO, DS_DETALHE_SITUACAO_CAND) %>% | |
mutate(NR_CPF_CANDIDATO=as.character(NR_CPF_CANDIDATO)) %>% | |
left_join(votos2016_tmp, by=c('SQ_CANDIDATO')) | |
candidatos2018_tmp <- candidatos2018 %>% | |
select(NM_CANDIDATO,NM_PARTIDO,SG_UF,NM_UE,NR_CPF_CANDIDATO, SQ_CANDIDATO, DS_DETALHE_SITUACAO_CAND) %>% | |
mutate(NR_CPF_CANDIDATO=as.character(NR_CPF_CANDIDATO)) %>% | |
left_join(votos2018_tmp, by=c('SQ_CANDIDATO')) | |
# Finalmente juntamos os arquivos já com os votos com o arquivo de 2020 | |
# O 'left_join' é para juntar duas tabelas o 'by' são os campos pelos quais queremos conectar as tabelas | |
# O 'suffix' é o sufixo que vamos colocar nas colunas para diferenciar, por exemplo, a coluna do partido de 2016 do de 2018. | |
candidatos2020_tmp <- candidatos2020 %>% | |
select(NM_CANDIDATO,NM_PARTIDO,SG_UF,NM_UE, NR_CPF_CANDIDATO) %>% | |
mutate(NR_CPF_CANDIDATO=as.character(NR_CPF_CANDIDATO)) %>% | |
left_join(candidatos2016_tmp, by=c('NR_CPF_CANDIDATO'), suffix=c('','_2016')) %>% | |
left_join(candidatos2018_tmp, by=c('NR_CPF_CANDIDATO'), suffix=c('',"_2018")) %>% | |
filter(SQ_CANDIDATO!=0, SQ_CANDIDATO_2018!=0) %>% | |
mutate(VARIACAO=VOTOS_2018-VOTOS_2016) | |
# Agora é só escrever o CSV. Novamente o "~/devel/blablabla" tem que ser o caminho do arquivo que você quer salvar. | |
write.csv2(candidatos2020_tmp, file=paste0("~/devel/eleicoes/BRASIL2016_laranjas.csv")) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment