--- title: "senatebR: coletando dados do Senado Federal brasileiro" author: "Vinicius Santos" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{senatebR: coletando dados do Senado Federal brasileiro} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} %\VignetteDepends{ggplot2} --- ```{r setup, include=FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = FALSE ) ``` ## Introduçã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. ```{r} library(senatebR) ``` ## Escopo e propósito O **senatebR** abrange cinco dimensões principais de dados: 1. **Projetos e Matérias** — projetos de lei, propostas legislativas e matérias em tramitação, com título, autor, status e histórico. 2. **Parlamentares** — perfis de senadores, biografias, filiações partidárias e histórico legislativo. 3. **Composição** — distribuição partidária, unidades federativas, duração de mandatos e dados demográficos. 4. **Comissões** — funções, membros, agendas e atividades das comissões. 5. **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. ```{r} 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. ```{r} # 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 ```{r} 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: ```{r} 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) ) ``` ### Transformação dos dados Separando partido e UF em colunas distintas: ```{r} dados_multi <- dados_multi |> tidyr::separate(Partido_UF, into = c("Partido", "UF"), sep = "/") ``` ### Análise temporal ```{r} 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 ```{r} 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.