senatebR: coletando dados do Senado Federal brasileiro
Vinicius Santos
2026-04-08
Source:vignettes/senatebR-introducao.Rmd
senatebR-introducao.RmdIntrodução
No debate sobre governo aberto, a disponibilidade de dados é vista como basilar para o funcionamento transparente e eficaz de qualquer democracia. No caso do Senado brasileiro, esses dados não apenas fornecem insights sobre o processo legislativo, mas também permitem a análise das políticas públicas e do comportamento dos legisladores.
O pacote senatebR foi criado com o propósito de simplificar a interação com as APIs e a obtenção de dados por meio de web scraping do Senado Federal / Congresso Nacional. O objetivo central é disponibilizar à comunidade acadêmica uma ferramenta que permita o acesso eficiente a dados legislativos.
Escopo e propósito
O senatebR abrange cinco dimensões principais de dados:
- Projetos e Matérias — projetos de lei, propostas legislativas e matérias em tramitação, com título, autor, status e histórico.
- Parlamentares — perfis de senadores, biografias, filiações partidárias e histórico legislativo.
- Composição — distribuição partidária, unidades federativas, duração de mandatos e dados demográficos.
- Comissões — funções, membros, agendas e atividades das comissões.
- Plenário — pautas de votação, transcrições de debates, vetos, medidas provisórias e decisões.
Exemplos de uso
1. Senadores por Legislatura
A função obter_dados_senadores_legislatura() recebe como
argumentos a legislatura inicial e final do intervalo desejado.
df_senadores <- obter_dados_senadores_legislatura(47, 56)
dplyr::glimpse(df_senadores)2. Medidas Provisórias
O pacote oferece duas funções para MPs: em tramitação e encerradas.
# MPs em tramitação
mpv_tramitacao <- coletar_medidas_provisorias_em_tramitacao()
dplyr::glimpse(mpv_tramitacao)
# MPs encerradas (todas as páginas)
mpv_encerradas <- coletar_medidas_provisorias_encerradas(364)
dplyr::glimpse(mpv_encerradas)3. Vetos
dados_vetos <- info_vetos(pages = 20)
dplyr::glimpse(dados_vetos)Estudo de Caso: Pronunciamentos dos Parlamentares
Coleta de dados
Coletando os senadores da 56ª legislatura e, em seguida, seus pronunciamentos entre 2020 e 2024:
df_56 <- obter_dados_senadores_legislatura(56, 56)
codigos <- df_56$IdentificacaoParlamentar.CodigoParlamentar
dados_multi <- extrair_pronunciamentos_multi(
codigos_parlamentares = codigos,
anos = c(2020:2024)
)Análise temporal
library(ggplot2)
pronunciamentos_por_ano <- dplyr::count(dados_multi, Ano)
ggplot(pronunciamentos_por_ano, aes(x = factor(Ano), y = n, fill = factor(Ano))) +
geom_bar(stat = "identity", show.legend = FALSE) +
geom_text(aes(label = n), vjust = -0.5, size = 3) +
scale_fill_brewer(palette = "Set3") +
theme_minimal() +
labs(
title = "Distribuição de Pronunciamentos por Ano",
x = "Ano",
y = "Número de Pronunciamentos"
)Distribuição por tipo de pronunciamento
tipos <- dplyr::count(dados_multi, Tipo_Pronunciamento) |>
dplyr::arrange(n)
ggplot(tipos, aes(x = reorder(Tipo_Pronunciamento, n), y = n)) +
geom_bar(stat = "identity", fill = "skyblue") +
coord_flip() +
theme_minimal() +
labs(
title = "Frequência de Tipos de Pronunciamento",
x = "Tipo",
y = "Número de Pronunciamentos"
)Referências
- Wickham, H., Çetinkaya-Rundel, M., & Grolemund, G. (2023). R for Data Science (2nd ed.). O’Reilly.
- Meireles, F., Silva, D., & Costa, E. (2016). congressbr: An R Package for Analysing Data from Brazil’s Chamber of Deputies and Federal Senate.
- Gherghina, S., & Katsanidou, A. (2013). Data Availability in Political Science Journals. European Political Science, 12(3), 333–349.