Introdução ao rcongresso

Paulo Vinícius Soares

2017-10-10

library(rcongresso)
library(DT)
library(magrittr)
library(dplyr)
library(knitr)

Introdução

Este pacote é baseado na nova API REST da Câmara dos Deputados. A API fornece funções para pegar muitas informações interessantes para os analistas de dados. A intenção desse pacote é ser um wrapper retornando dataframes prontos facilitando a vida dos usuários.

Compreendendo a organização das funções e dos dados

Antes de tudo, precisamos entender um pouco como se dá a organização da câmara ao gerar as proposições e como estas informações estão organizadas na base de dados. Além disso, podemos obter mais infomações sobre um deputado especificamente.

Pegando uma proposição da base de dados

Para recuperar uma proposição você precisa de três informações: O tipo da proposição (i.e., PEC, PL, PLP), o número da proposição e o ano em que esta foi proposta. Com essas três informações em mãos podemos recuperar o ID da proposição da base de dados e, consequentemente, a proposição.

Vamos utilizar como exemplo a PL 4302/1998, o projeto de lei da terceirização. Já temos as informações necessárias para recuperar o ID desta, então fazemos uma chamada à função fetch_id_proposicao().

pl4302_id <- fetch_id_proposicao(tipo="PL", numero=4302, ano=1998)

Com o ID da proposição em mãos, podemos recuperar a proposição em si contendo as informações relevantes sobre esta. Fazemos isso com uma chamada à função fetch_proposicao()

pl4302 <- fetch_proposicao(id_prop=pl4302_id)

Essas são as informações que dispomos sobre a proposição:

colnames(pl4302)
##  [1] "id"               "uri"              "siglaTipo"       
##  [4] "idTipo"           "numero"           "ano"             
##  [7] "ementa"           "dataApresentacao" "tipoAutor"       
## [10] "idTipoAutor"      "descricaoTipo"    "keywords"

Um resumo das informações referentes à proposição podem ser vistas abaixo:

pl4302 %>% 
  select(id, uri, numero, ano, ementa, dataApresentacao) %>%
  kable()
id uri numero ano ementa dataApresentacao
20794 https://dadosabertos.camara.leg.br/api/v2/proposicoes/20794 4302 1998 Dispõe sobre as relações de trabalho na empresa de trabalho temporário e na empresa de prestação de serviços a terceiros, e dá outras providências. NOVA EMENTA DO SUBSTITUTIVO: Altera dispositivos da Lei nº 6.019, de 03 de janeiro de 1974, que dispõe sobre o trabalho temporário nas empresas urbanas e dá outras providências" e dispõe sobre as relações de trabalho na empresa de prestação de serviços a terceiros. 1998-03-19 00:00:00.0

Selecionando a votação desejada

Com o ID da proposição, além da proposição em si, podemos recuperar todas as votações pelas quais aquela proposição já passou. Fazemos isso com uma chamada à função fetch_votacoes()

votacoes_pl4302 <- fetch_votacoes(id_prop=pl4302_id)

Essas são todas as informações que dispomos sobre as votações retornadas:

colnames(votacoes_pl4302)
##  [1] "id"                     "uri"                   
##  [3] "titulo"                 "uriEvento"             
##  [5] "uriProposicaoPrincipal" "tipoVotacao"           
##  [7] "aprovada"               "placarSim"             
##  [9] "placarNao"              "placarAbstencao"       
## [11] "proposicao.id"          "proposicao.uri"        
## [13] "proposicao.siglaTipo"   "proposicao.idTipo"     
## [15] "proposicao.numero"      "proposicao.ano"        
## [17] "proposicao.ementa"

Temos abaixo um resumo do dataframe retornado:

votacoes_pl4302 %>% 
  select(id, titulo, placarSim, placarNao, placarAbstencao) %>% 
  kable()
id titulo placarSim placarNao placarAbstencao
7430 SUBSTITUTIVO DO SENADO FEDERAL - EMENDA SUPRESSIVA 28 275 46
7427 REQUERIMENTO DE ADIAMENTO DA VOTAÇÃO POR 1 SESSÃO 35 231 5
7424 REQUERIMENTO DE RETIRADA DE PAUTA 40 213 4
7431 SUBSTITUTIVO DO SENADO FEDERAL 232 188 8

Com essas informações em mãos podemos escolher uma votação para analisarmos melhor. Escolhemos a votação pelo seu ID. Fazemos isso com uma chamada à função fetch_votacao()
Vamos escolher a votação cujo título é “SUBSTITUTIVO DO SENADO FEDERAL” e tem ID=7431.

votacao_aprovacao_terceirizacao <- fetch_votacao(id_votacao=7431)

Essas são todas as informações que dispomos sobre a votação:

colnames(votacao_aprovacao_terceirizacao)
##  [1] "id"                     "uri"                   
##  [3] "titulo"                 "uriEvento"             
##  [5] "uriProposicaoPrincipal" "tipoVotacao"           
##  [7] "placarSim"              "placarNao"             
##  [9] "placarAbstencao"        "dataHoraInicio"        
## [11] "dataHoraFim"

Temos abaixo um resumo do dataframe retornado:

data.frame(id=votacao_aprovacao_terceirizacao$id, titulo=votacao_aprovacao_terceirizacao$titulo, 
           dataHoraInicio=votacao_aprovacao_terceirizacao$dataHoraInicio, dataHoraFim=votacao_aprovacao_terceirizacao$dataHoraFim) %>%
  kable()
id titulo dataHoraInicio dataHoraFim
7431 SUBSTITUTIVO DO SENADO FEDERAL 2017-03-22 15:41:02.0 2017-03-22 20:45:32.0

Podemos ver, a partir dessa variável acessando o dataframe orientacoes, a orientação das bancadas. Essa informação é crucial para construir o dataframe final. Para isso utilizamos a função fetch_orientacoes()

fetch_orientacoes(id_votacao=7431) %>% 
  select(nomeBancada, voto) %>% 
  datatable()

Pegando os votos dos deputados

Com o ID da votação, além da votação em si, podemos recuperar todas os votos dos deputados que participaram daquela votação. Fazemos isso utilizando a função fetch_votos().

votos_aprovacao_terceirizacao <- fetch_votos(id_votacao=7431)

Essas são todas as informações que dispomos sobre os votos:

colnames(votacao_aprovacao_terceirizacao)
##  [1] "id"                     "uri"                   
##  [3] "titulo"                 "uriEvento"             
##  [5] "uriProposicaoPrincipal" "tipoVotacao"           
##  [7] "placarSim"              "placarNao"             
##  [9] "placarAbstencao"        "dataHoraInicio"        
## [11] "dataHoraFim"

Temos abaixo um resumo do dataframe retornado:

votos_aprovacao_terceirizacao %>% 
  select(parlamentar.id, parlamentar.nome, parlamentar.siglaPartido, voto) %>% 
  datatable()

Recuperando informações sobre um deputado

Se quisermos obter mais informações sobre um deputado, podemos fazê-lo pelo seu ID. Fazemos isso utilizando a função fetch_deputado().
Podemos recuperar mais informações sobre o deputado Abel Mesquita, cujo id é 178957. Abaixo temos um exemplo do dataframe retornado:

fetch_deputado(178957) %>%
  select(-uri) %>%
  kable()
id nomeCivil cpf sexo dataNascimento ufNascimento municipioNascimento escolaridade
178957 ABEL SALVADOR MESQUITA JUNIOR M 1962-03-29 RR Boa Vista Superior Incompleto