R/download_dados.R

Defines functions consulta_dados

# Carregar bibliotecas
usethis::use_package('R.utils')
usethis::use_package('stringr')
usethis::use_package('plyr')
usethis::use_package('dplyr')
usethis::use_package('readr')


consulta_dados <- function(ano = 'all') {
  # caso o usuário não informe qual o ano, serão baixados os dados de todos os anos
  if (ano == 'all') {
    ano <- c(2015,2016,2017,2018,2019,2020,2021)
  }
  # permite passar mais de um ano por vez por meio de um vetor
  for(i in ano) {
  ano <- paste0('link',i)
  x <- c('link2015','link2016','link2017','link2018','link2019','link2020','link2021')
  x <- match(ano,x) # retorna a posição da string que dá match
  dir <- '/temp/' # diretório para download

  links <- c('https://dadosabertos-download.cgu.gov.br/FalaBR/Arquivos_FalaBR_Filtrado/Arquivos_csv_2015.zip',
             'https://dadosabertos-download.cgu.gov.br/FalaBR/Arquivos_FalaBR_Filtrado/Arquivos_csv_2016.zip',
             'https://dadosabertos-download.cgu.gov.br/FalaBR/Arquivos_FalaBR_Filtrado/Arquivos_csv_2017.zip',
             'https://dadosabertos-download.cgu.gov.br/FalaBR/Arquivos_FalaBR_Filtrado/Arquivos_csv_2018.zip',
             'https://dadosabertos-download.cgu.gov.br/FalaBR/Arquivos_FalaBR_Filtrado/Arquivos_csv_2019.zip',
             'https://dadosabertos-download.cgu.gov.br/FalaBR/Arquivos_FalaBR_Filtrado/Arquivos_csv_2020.zip',
             'https://dadosabertos-download.cgu.gov.br/FalaBR/Arquivos_FalaBR_Filtrado/Arquivos_csv_2021.zip')

  # Conferir se os arquivos de algum ano já foram baixados anteriormente
  lista.arquivos.locais <- list.files(path = "temp/", pattern = "*.csv", full.names = TRUE)

  # procurar por '_2021' porque todos os arquivos contém 2021 no nome
if (any(grepl(paste0('_',i), lista.arquivos.locais)) == F | length(lista.arquivos.locais) == 0) {
  download.file(links[x], paste0('./temp/',stringr::str_sub(links[x],start = -21))) # fazer com que o nome do arquivo seja dinâmico
  # Extrair os arquivos baixados e excluir arquivos zip
  lista.arquivos <- list.files(path = "temp/", pattern = "*.zip", full.names = TRUE)
  mapply(unzip, zipfile = lista.arquivos, exdir = 'temp')
  file.remove(lista.arquivos) # excluir arquivos com extensão zip
    } else{
    print(paste0('Os arquivos de ',i,' já foram baixados anteriormente.'))
  }
    }
  }

# consulta_dados()
igorlaltuf/dalair documentation built on Dec. 31, 2021, 12:04 a.m.