Skip to content

Instantly share code, notes, and snippets.

@gabrielacaesar
Created November 23, 2022 21:21
Show Gist options
  • Save gabrielacaesar/925101e2555104ab187a026088e812b4 to your computer and use it in GitHub Desktop.
Save gabrielacaesar/925101e2555104ab187a026088e812b4 to your computer and use it in GitHub Desktop.
# código feito em R
# para facilitar rode no RStudio
## pacotes usados
# install.packages("tidyverse")
# install.packages("data.table")
library(tidyverse)
library(data.table)
## indicação para baixar o arquivo bruto
# encontre os dados aqui: https://dadosabertos.tse.jus.br/dataset/dadosabertos-tse-jus-br-dataset-prestacao-de-contas-eleitorais-2022
# arquivo baixado: Prestação de contas de candidatos
# dados baixados às 16h20 de 23 de novembro de 2022
dados_brutos <- fread("~/Downloads/prestacao_de_contas_eleitorais_candidatos_2022/despesas_contratadas_candidatos_2022_BRASIL.csv",
encoding = "Latin-1",
colClasses = (NR_CPF_CNPJ_FORNECEDOR = "character"))
# verifica dados do arquivo bruto
glimpse(dados_brutos)
head(dados_brutos)
# seleciona colunas de interesse
# transforma coluna de despesa de texto para número
dados_reduzido <- dados_brutos %>%
select(SG_UF, NR_CPF_CNPJ_FORNECEDOR, DS_TIPO_FORNECEDOR, NM_FORNECEDOR, DS_ORIGEM_DESPESA, DS_DESPESA, VR_DESPESA_CONTRATADA, DS_CARGO, NM_CANDIDATO, SG_PARTIDO) %>%
mutate(VR_DESPESA_CONTRATADA = as.double(str_replace_all(VR_DESPESA_CONTRATADA, ",", ".")))
# filtro para exibir apenas os dados da campanha presidencial
dados_presidencial <- dados_reduzido %>% filter(SG_UF == "BR")
# apenas CNPJ e nome da empresa
nome_fornecedor <- dados_reduzido %>% select(NR_CPF_CNPJ_FORNECEDOR, NM_FORNECEDOR) %>% distinct(NR_CPF_CNPJ_FORNECEDOR, .keep_all = T)
### top fornecedores
# sem filtro; todos os candidatos
fornecedores_total <- dados_reduzido %>%
group_by(NR_CPF_CNPJ_FORNECEDOR) %>%
summarise(valor_total = sum(VR_DESPESA_CONTRATADA)) %>%
left_join(nome_fornecedor, by = "NR_CPF_CNPJ_FORNECEDOR") %>%
arrange(desc(valor_total)) %>%
mutate(order = row_number())
# exibe as 15 primeiras linhas do dataframe acima
head(fornecedores_total, 15)
# baixa como CSV (planilha)
write.csv(fornecedores_total, "fornecedores_total.csv", row.names = F)
### top fornecedores
# filtro pelos candidatos a presidente
fornecedores_total_pr <- dados_presidencial %>%
group_by(NR_CPF_CNPJ_FORNECEDOR) %>%
summarise(valor_total = sum(VR_DESPESA_CONTRATADA)) %>%
left_join(nome_fornecedor, by = "NR_CPF_CNPJ_FORNECEDOR") %>%
arrange(desc(valor_total)) %>%
mutate(order = row_number())
# exibe as 15 primeiras linhas
head(fornecedores_total_pr, 15)
# baixa como CSV (planilha)
write.csv(fornecedores_total_pr, "fornecedores_total_pr.csv", row.names = F)
### top fornecedores
# filtro pela coluna DS_ORIGEM_DESPESA == "Despesa com Impulsionamento de Conteúdos"; todos os cadidatos
fornecedores_total_impulsionamento <- dados_reduzido %>%
filter(DS_ORIGEM_DESPESA == "Despesa com Impulsionamento de Conteúdos") %>%
group_by(NR_CPF_CNPJ_FORNECEDOR) %>%
summarise(valor_total = sum(VR_DESPESA_CONTRATADA)) %>%
left_join(nome_fornecedor, by = "NR_CPF_CNPJ_FORNECEDOR") %>%
arrange(desc(valor_total)) %>%
mutate(order = row_number())
# exibe as 15 primeiras linhas
head(fornecedores_total_impulsionamento, 15)
# baixa como CSV (planilha)
write.csv(fornecedores_total_impulsionamento, "fornecedores_total_impulsionamento.csv", row.names = F)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment