Construindo mapas eleitorais com R e electionsBR

[Texto do prof. Robert McDonnell, professor do curso de Programação em R – Texto originalmente publicado aqui]

Para os interessados na política brasileira, foi divulgado um novo pacote chamado electionsBR. que pega dados do TSE –  Tribunal Superior Eleitoral e os torna disponíveis em um formato organizado para usuários de R. Dada a minha obsessão recente com a elaboraçao de mapas, vi aqui a oportunidade de fazer mapas do Brasil com este pacote.

Então, o que podemos fazer com ele? Bem, que tal um mapa de como os brasileiros votaram nas eleições de 2014? Para fazer isso, usaremos electionsBR para obter os dados das eleições e uma mistura de tidyverse e alguns pacotes de mapeamento e plotagem:


A função vote_mun_zone_fed() toma um único argumento, year, como um inteiro.  Isso demora um bom tempo para fazer o download, visto que é uma grande base de dados.


Uma vez que temos os dados, podemos usar o tidyverse para limpá-los e organizá-los como quisermos. Eu vou mudar a codificação de caracteres para ASCII, usando o pacote stringi e selecionar apenas as colunas que eu preciso.


Uma coisa interessante que podemos fazer com este conjunto de dados é mapear a percentagem do eleitorado que votou em Dilma. Para isso precisamos de shapefiles para o Brasil, que você pode obter do site gadm.org.

Precisamos também isolar a votação de Dilma e depois calcular a proporção em cada município que votou nela. Como houveram dois turnos, podemos visualizar cada um. O código abaixo representa o primeiro turno; para fazer a mesma coisa com o segundo turno, apenas alteramos a primeira linha de código para filtrar para filter para NUM_TURNO == 2.


Em seguida, leremos nossos arquivos de formato. Teremos que arrumar nomes de municípios e corrigir erros de codificação.

Vamos ver quais municípios estão faltando da base de dados electionsBR.

 

Conheça mais do curso de Programação em R oferecido pelo IBPAD

 Inscrições abertas em São Paulo e no Rio de Janeiro!

 


Isso é um pouco irritante, mas alguns são fáceis de corrigir – no final vão faltar apenas alguns municípios por causa dessas diferenças de codificação. Alguns outros são mais difíceis de descobrir: eu não sei se os erros estão nos dados do TSE, ou neste geo-dados. De qualquer forma, não vale a pena gastar muito tempo recodificando, por isso vamos deixá-lo de lado por enquanto.


Podemos usar fortify para transformar isso tudo em algo mais manipulável para o ggplot(). Então podemos acrescentar os dados que temos do total de votos para a Dilma e estamos prontos para plotar algo.


Podemos ver que mesmo em 2014, o apoio de Dilma no Sudeste do país não foi esmagador.

Nós podemos usar electionsBR para investigar outros itens de interesse, como a parcela de votos por partido. Por exemplo, talvez você esteja interessado em saber se o Partido Comunista do Brasil tem nichos no país. Tudo que precisamos fazer é um subconjunto do banco de dados Mun que baixamos anteriormente por DESCRICAO_CARGO == "DEPUTADO FEDERAL" andSIGLA_PARTIDO == "PC do B".e SIGLA_PARTIDO == “PC do B”. Além dessas mudanças, todo o resto pode ser feito da mesma maneira. Uma vez que temos este dataframe (que eu vou chamar de pc), podemos plotar tudo da mesma maneira:


Pelo visto não é um país muito comunista.

Isso foi uma breve apresentação do pacote electionsBR. Estão disponíveis dados de outros anos e eleições também, assim como dados de outros níveis administrativos, não apenas o Presidente e Deputados Federais. O TSE também tem dados sobre os antecedentes dos candidatos e seus gastos de campanha, todos os quais podem ser utilizados com electionsBR. E se você quiser combinar toda essa informação com o comportamento legislativo da Câmara dos Deputados, basta carregar o pacote bRasilLegis e você tem uma abundância de dados sobre deputados federais brasileiros na palma da mão. Estou muito orgulhoso de estar envolvido em ambos os pacotes. É ótimo ajudar a facilitar o acesso a esses dados para os interessados na política Brasileira.

Ps. Esta postagem no blog foi escrita usando R Notebooks e transformada em .md na minha pasta jekyll_posts, usando uma função de David Robinson. Admito que gostei muito do R Notebooks até agora, especialmente a pré-visualização. Experimente você também.

Update: parece que algumas pessoas estão tendo problemas executando os scripts acima, com o R retornando: Error: isTRUE(gpclibPermitStatus()) is not TRUE. A solução para isso é ter certeza de que tem rgdal ou rgeos ou pacote de mapeamento semelhante instalado.

Vale mencionar que eu estou envolvido no desenvolvimento deste pacote, entretanto não sou um dos desenvolvedores originais – os que merecem esse crédito são Denisson Silva, Fernando Meireles, e Beatriz Costa. No entanto, estou promovendo aqui porque eu acho que é ótimo, e não porque estou envolvido. (Embora eu esteja envolvido porque eu acho que é ótimo :smile: )

 

postrelacionados

Comentários

comments

Comentários (1)

Deixe um comentário