Skip to content

Instantly share code, notes, and snippets.

@sergiospagnuolo
Created April 6, 2023 13:51
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save sergiospagnuolo/48744aeddde72c87b1849c7c21dc0637 to your computer and use it in GitHub Desktop.
Extrai e analisa dados do Portal da Transparência com dados sobre gastos com Google, Twitter, Facebook e TikTok
library(tidyverse)
library(jsonlite)
library(lubridate)
library(deflateBR)
library(scales)
library(clipr)
library(googlesheets4)
options(scipen = 999)
Twitter <- "https://transparencia.gov.br/despesas/favorecido/resultado?paginacaoSimples=true&tamanhoPagina=10000&offset=0&direcaoOrdenacao=desc&colunaOrdenacao=valor&colunasSelecionadas=data%2CdocumentoResumido%2ClocalizadorGasto%2Cfase%2Cespecie%2Cfavorecido%2CufFavorecido%2Cvalor%2Cug%2Cuo%2Corgao%2CorgaoSuperior%2Cgrupo%2Celemento%2Cmodalidade%2CplanoOrcamentario%2Cautor%2CsubTitulo&favorecido=37595606&faseDespesa=3&_=1638905135038"
Twitter <- jsonlite::fromJSON(Twitter)
Twitter <- Twitter[["data"]]
Twitter <- Twitter[,-25]
Twitter$rede <- "Twitter"
Google <- "https://transparencia.gov.br/despesas/favorecido/resultado?paginacaoSimples=true&tamanhoPagina=10000&offset=0&direcaoOrdenacao=desc&colunaOrdenacao=valor&colunasSelecionadas=data%2CdocumentoResumido%2ClocalizadorGasto%2Cfase%2Cespecie%2Cfavorecido%2CufFavorecido%2Cvalor%2Cug%2Cuo%2Corgao%2CorgaoSuperior%2Cgrupo%2Celemento%2Cmodalidade%2CplanoOrcamentario%2Cautor%2CsubTitulo&favorecido=33989863&faseDespesa=3&_=1638905736802"
Google <- jsonlite::fromJSON(Google)
Google <- Google[["data"]]
Google <- Google[,-25]
Google$rede <- "Google"
Facebook <- "https://transparencia.gov.br/despesas/favorecido/resultado?paginacaoSimples=true&tamanhoPagina=10000&offset=0&direcaoOrdenacao=desc&colunaOrdenacao=valor&colunasSelecionadas=data%2CdocumentoResumido%2ClocalizadorGasto%2Cfase%2Cespecie%2Cfavorecido%2CufFavorecido%2Cvalor%2Cug%2Cuo%2Corgao%2CorgaoSuperior%2Cgrupo%2Celemento%2Cmodalidade%2CplanoOrcamentario%2Cautor%2CsubTitulo&favorecido=25843654&faseDespesa=3&_=1638905974784"
Facebook <- jsonlite::fromJSON(Facebook)
Facebook <- Facebook[["data"]]
Facebook <- Facebook[,-25]
Facebook$rede <- "Facebook"
TikTok <- "https://portaldatransparencia.gov.br/despesas/favorecido/resultado?paginacaoSimples=true&tamanhoPagina=10000&offset=0&direcaoOrdenacao=desc&colunaOrdenacao=valor&colunasSelecionadas=data%2CdocumentoResumido%2ClocalizadorGasto%2Cfase%2Cespecie%2Cfavorecido%2CufFavorecido%2Cvalor%2Cug%2Cuo%2Corgao%2CorgaoSuperior%2Cgrupo%2Celemento%2Cmodalidade%2CplanoOrcamentario%2Cautor%2CsubTitulo%2Cfuncao%2Csubfuncao%2Cprograma%2Cacao&favorecido=370217628&faseDespesa=3&_=1669773293148"
TikTok <- jsonlite::fromJSON(TikTok)
TikTok <- TikTok[["data"]]
TikTok <- TikTok[,-25]
TikTok$rede <- "TikTok"
d <- bind_rows(Facebook, Google, TikTok, Twitter)
d <- d %>% filter(valor > 0)
d$valor <- gsub("\\.", "", d$valor)
d$valor <- round(as.numeric(sub(",", ".", as.character(d$valor))), 0)
d$data_format <- as.Date(d$data, format = "%d/%m/%Y")
d$mes <- format(as.Date(d$data_format), "%Y-%m")
d$ano <- format(as.Date(d$data_format), "%Y")
d$valor_ajustado <- deflate(d$valor, d$data_format, "01/2023", "ipca")
d$valor_ajustado <- round(d$valor_ajustado, 0)
AUTENTICA GOOGLE SHEETS
lib::autenticar_gsheets()
id <- googlesheets4::as_sheets_id("")
raw <- googlesheets4::read_sheet(id)
################
###### Análises
ano <- d %>%
drop_na(valor_ajustado) %>%
filter(ano > 2018) %>%
group_by(ano) %>%
summarise(total = sum (valor_ajustado)) %>%
arrange(ano)
write_sheet(ano, ss = "https://docs.google.com/spreadsheets/d/1oAEf25b0UllWH_CK4vhucMQvfB2FPpnvLGWFvBI1A5M/edit#gid=0", sheet = "ano")
#write_clip(ano)
ano_organosup <- d %>%
drop_na(valor_ajustado) %>%
filter(ano > 2018) %>%
group_by(ano, orgaoSuperior) %>%
summarise(total = sum (valor_ajustado)) %>%
arrange(ano) %>%
spread(orgaoSuperior, total)
write_sheet(ano_organosup, ss = "https://docs.google.com/spreadsheets/d/1oAEf25b0UllWH_CK4vhucMQvfB2FPpnvLGWFvBI1A5M/edit#gid=0", sheet = "ano_organosup")
#write_clip(ano_organosup)
organosup <- d %>%
drop_na(valor_ajustado) %>%
filter(ano > 2018) %>%
group_by(orgaoSuperior) %>%
summarise(total = sum (valor_ajustado)) %>%
arrange(desc(total))
write_sheet(organosup, ss = "https://docs.google.com/spreadsheets/d/1oAEf25b0UllWH_CK4vhucMQvfB2FPpnvLGWFvBI1A5M/edit#gid=0", sheet = "organosup")
#write_clip(organosup)
por_rede <- d %>%
drop_na(valor_ajustado) %>%
filter(ano > 2018) %>%
group_by(rede) %>%
summarise(total = sum (valor_ajustado)) %>%
arrange(desc(total))
write_sheet(por_rede, ss = "https://docs.google.com/spreadsheets/d/1oAEf25b0UllWH_CK4vhucMQvfB2FPpnvLGWFvBI1A5M/edit#gid=0", sheet = "por_rede")
#write_clip(por_rede)
ano_rede <- d %>%
drop_na(valor_ajustado) %>%
filter(ano > 2022) %>%
group_by(ano, rede) %>%
summarise(total = sum (valor_ajustado)) %>%
arrange(ano)
write_sheet(ano_rede, ss = "https://docs.google.com/spreadsheets/d/1oAEf25b0UllWH_CK4vhucMQvfB2FPpnvLGWFvBI1A5M/edit#gid=0", sheet = "ano_rede")
#write_clip(ano_rede)
por_motivo_ano <- d %>%
drop_na(valor_ajustado) %>%
filter(ano > 2018) %>%
group_by(planoOrcamentario, ano) %>%
summarise(total = sum (valor_ajustado)) %>%
arrange(ano)
write_sheet(por_motivo_ano, ss = "https://docs.google.com/spreadsheets/d/1oAEf25b0UllWH_CK4vhucMQvfB2FPpnvLGWFvBI1A5M/edit#gid=0", sheet = "por_motivo_ano")
#write_clip(por_motivo_ano)
por_motivo <- d %>%
drop_na(valor_ajustado) %>%
filter(ano > 2018) %>%
group_by(planoOrcamentario) %>%
summarise(total = sum (valor_ajustado)) %>%
arrange(desc(total))
write_sheet(por_motivo, ss = "https://docs.google.com/spreadsheets/d/1oAEf25b0UllWH_CK4vhucMQvfB2FPpnvLGWFvBI1A5M/edit#gid=0", sheet = "por_motivo")
#write_clip(por_motivo)
por_motivo_por_rede <- d %>%
drop_na(valor_ajustado) %>%
filter(ano > 2018) %>%
group_by(planoOrcamentario, rede) %>%
summarise(total = sum (valor_ajustado)) %>%
arrange(desc(total))
write_sheet(por_motivo_por_rede, ss = "https://docs.google.com/spreadsheets/d/1oAEf25b0UllWH_CK4vhucMQvfB2FPpnvLGWFvBI1A5M/edit#gid=0", sheet = "por_motivo_por_rede")
#write_clip(por_motivo_por_rede)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment