Cepesp-Fgv / cepesp-r

43 stars 9 forks source link

Percentual de votos válidos no partido eleito por municipio #68

Closed Aldenisio closed 5 years ago

Aldenisio commented 5 years ago

Olá, pessoal! Estou iniciando com o R, e tentei varias vezes porém sem sucesso obter a seguinte informação:

%votos válidos no partido eleito para cada município.

Meu interesse são as eleições municipais, cargo prefeito, nos anos 2012 e 2016. Quero gerar um novo banco com as colunas: Código do IBGE; Número do turno; Sigla do Partido; descrição do resultado (eleito/não eleito); total de votos e ; percentual de votos válidos no partido eleito.

Alguém poderia me ajudar com o Script??

guirusso commented 5 years ago

Oi Aldenisio, A equipe do CepespData preparou um material bem bacana nesse link que descreve como utilizar o pacote para acessar os dados. Na primeira página, também estão listados algumas fontes para estudar a linguagem do R sem custo. Aqui vai o link para o material: http://workshop.cepesp.io/

Sobre o que está buscando especificamente, escrevi uma forma de criar este banco. Acredito que vá funcionar perfeitamente na sua máquinas, mas sugiro que tente entender o código e pratique escrever comandos parecidos para seu próprio treino.

Instalando o pacote cepespR para acesso ao CepespData

if (!require("devtools")) install.packages("devtools") devtools::install_github("Cepesp-Fgv/cepesp-r") library(cepespR)

Baixando os dados de 2012 com algumas variáveis

df_pref2012<-get_elections(year=2012, position="Prefeito", columns_list = c("NOME_MUNICIPIO", "NOME_UF", "COD_MUN_IBGE", "NOME_CANDIDATO", "NUMERO_CANDIDATO", "SIGLA_PARTIDO", "NUM_TURNO", "DESC_SIT_TOT_TURNO", "QTDE_VOTOS"))

Ordenando o banco por nome do estado e código do IBGE

df_pref2012<-df_pref2012[order(df_pref2012$NOME_UF, df_pref2012$COD_MUN_IBGE),]

Calculando o percentual de votos por munícipio e turno

for(m in unique(df_pref2012$COD_MUN_IBGE)){ for(t in unique(df_pref2012$NUM_TURNO)){ df_pref2012$PC_QTDE_VOTOS[df_pref2012$COD_MUN_IBGE==m & df_pref2012$NUM_TURNO==T]<- df_pref2012$QTDE_VOTOS[df_pref2012$COD_MUN_IBGE==m & df_pref2012$NUM_TURNO==T]/ sum(df_pref2012$QTDE_VOTOS[df_pref2012$COD_MUN_IBGE==m & df_pref2012$NUM_TURNO==T]) } }

Olhando o banco

View(df_pref2012)

Para ter acesso ao mesmo banco em 2016, é só trocar todos o "year=2012" por "year=2016", na linha para baixar o banco, mas também mudaria o nome do objeto de "df_pref2012" para "df_pref2016".

Um abraço, Guilherme

Aldenisio commented 5 years ago

Nossa, Guirusso, você não sabe quão grato estou por sua ajuda. Obrigadão!!!

Não sabia do tutorial organizado pela equipe do CepespData. Quero muito desenvolver habilidades nesse ambiente/ferramenta fantástica que o R proporciona.

Seu script funcionou direitinho!!!

Abraços e espero um dia estar ajudando outras pessoas!!