“O começo de todas as ciências é o espanto de as coisas serem o que são.”
(Aristóteles)

Programando em R

R é atualmente uma das linguagens mais usada no mundo para Data Science. Sendo, utilizada desde coleta à análise de dados, por exemplo: coleta em páginas da web (institucionais, redes sociais), análise de dados (estatística frequentista, bayesiana, mineração de dados). O R é dessa forma o software que mais ganha espaço na comunidade acadêmica nas diversas áreas da ciência.

O objetivo desta seção apresentar a linguagem R com foco principal em coleta de dados na web (web scraping) , manipulação de banco de dados e análise estatística. Tentarei focar exemplos da área de Ciências Sociais, e mais especificamente em Ciência Política área que estou em formação.  

A nova versão do electionsBR conta com algumas novidades:
1) Função para baixar dados do perfil de eleitores por local de votação (como exibido no gráfico abaixo)
2) O argumento temp, que quando igual TRUE (default) os arquivos originais do TSE ficam em pasta temporaria da seção em execução, pois assim, na mesa seção não precisa baixar os dados toda vez que usar uma função.
3) Nessa versão estamos exportando o operador pipe %>%, assim não será necessário abrir o pacote magrittr ou outro que também exporta o pipe, a não ser que realmente seja necessario.




#install.packages("electionsBR")
options(timeout = 120)
library(electionsBR) library(data.table) library(ggplot2)
maceio <- voter_profile_by_section(2020, temp = T) %>% data.table()
maceio <- maceio[NM_MUNICIPIO == "MACEIÓ", ] %>% .[, .(total_bairro = sum(QT_ELEITOR)), by = "NM_BAIRRO"] %>% .[, percent := round(total_bairro * 100 / sum(total_bairro), 2)]
ggplot(maceio, aes(reorder(NM_BAIRRO, percent), percent)) + geom_bar(stat = "identity") + coord_flip() + theme_classic(base_size = 8) + labs(x = "", y ="%", title = "Porcentagem de eleitores por bairro de Maceió - eleições 2020") + geom_text(aes(label = percent), hjust = -0.1, size = 2.5) + scale_y_continuous(limits = c(0, 15))
ggsave("ex_maceio.jpg", width = 8)

Na semana de de 01 a 05 de julho ministrei o curso: Introducação a visuzalização de dados com R. O curso correu no ambito do Programa de Pós-Graduação em Ciência Política - DCP/UFMG, mais especificamente no MODUS - Curso Intensivo em Metodologias de Pesquisa em Ciências Sociais.

A atividade final para turma foi criar uma dashboad usando o Rmarkdown e o pacote flexdashboard como base, com liberdade para escolha de dados, no entanto, aplicando os princípios de visualização de dados e a gramática de gráficos apresentados no primeiro dia de aula. A turma foi formada por 25 alunos dos quais 14 nunca tinha utilizado o R.

Nesse post vou exibir 5 dessas dashboard.

Autor: Lucas Ribeiro

Tema: Desmatamento na Amanzônia Legal Brasileira

Autora: Suzana Alves

Tema: Processo de Abuso de Poder Econômico Eleições 2012 para Prefeitos 

Autora: Myla Freire

Tema: Renda, pobreza e desigualdade no Sudeste e no Brasil

 Autores: Florencia Lorenzo e Artur Quirino

Tema: Candidaturas Fantasmas

 Autor: Shandor Torok

Tema: Comportamento judicial dos Desembargadores  Tribunal de Justiça do Estado de Mato Grosso do Sul

Atualizamos o pacote electionsBR em duas frentes principais: 1) incluir novos dados, por exemplo eleições 2018; e 2) tratar erros oriundos de modificação da estrutura de arquivos que o TSE disponibiliza. Neste último, o TSE  além de incluir novas variáveis também modificou a extensão de arquivos para alguns anos, abandonando o tradicional txt e adotando o csv.

Para alguns anos o TSE incluiu um arquivo chamado BR, que para alguns casos retorna o arquivo completo para todos os cargos e para outros só retorna informações para o cargo de Presidente da República, para abordar está situação incluimos o argumento br_archive que por padrão é falso.

 

Para os que não conhecem o pacote electionsBR, ele faz essencialmente três tarefas:

  1. Conecta o R ao Repositório do TSE para fazer o download das inforções por eleição;
  2. Extrai os dados de diversos arquivos que estão compactados (tarefa que se feita manualmente pode custar muitas horas de trabalho);
  3. Uni e padroniza as diversas informações dos diversos bancos de dados, que pode ser utilizado para as eventuais análises ou exportar diretamente para outros formatos (software) como Stata e SPSS, com a simples habilitação do arguemento export.

Segue abaixo um exemplo do uso do pacote electionsBR:

 

 

library(electionsBR)
library(ggpol)

consult18 <- candidate_fed(2018)

consult18 <- consult18[consult18$DESC_SIT_TOT_TURNO %in% c("ELEITO POR QP", "ELEITO POR MÉDIA", "ELEITO"), ]

fed <- as.data.frame(table(consult18[consult18$DESCRICAO_CARGO == "DEPUTADO FEDERAL", 43]))


ggplot(fed) +
geom_parliament(aes(seats = Freq, fill = Var1)) +
scale_fill_manual(name = "Sexo", values = c("#663399", "#d5e5e0"),
labels = c("Feminino", "Masculino")) +
coord_fixed() +
theme_void() +
theme(legend.position = "bottom") +
labs(title = "Câmara dos deputados 2018",
subtitle = "Eleitos por Sexo",
caption = "denissosilva.com")

Usando o pacote electionsBR para fazer download dos votos dos candidatos a presidente no segundo turno e compatabilizando os codigos IBGE e TSE usando o pacote ribge, para poder gerar um mapa coroplético com a porcentagem de votos do PT por município em 2010.