R/ONS_reservatorios.R

Defines functions ONS_reservatorios

Documented in ONS_reservatorios

#' Dados atuais dos reservatorios brasileiros observados pela ONS
#'
#' @export
#' @param formato Formato dos dados a serem apresentados.
#'
#' @examples
#' ONS_reservatorios(formato="tabela")
#' ONS_reservatorios(formato="resumo")

ONS_reservatorios <- function(formato="tabela") {
  if (formato == "tabela" | formato == "resumo") {
    json_ONS <-
     jsonlite::fromJSON(
        "http://tr.ons.org.br/Content/Get/SituacaoDosReservatorios",
        simplifyVector = FALSE
      )

    tabela_ONS <- json_ONS %>%
      tibble::enframe() %>%
      tidyr::unnest_wider(value) %>%
      janitor::clean_names()

    tabela_ONS$data <- as.Date(tabela_ONS$data)

    if (formato == "tabela") {

      tabela_ONS <- dplyr::select(tabela_ONS, -name)
      tabela_ONS$subsistema <- as.factor(tabela_ONS$subsistema)
      tabela_ONS$bacia <- as.factor(tabela_ONS$bacia)

      return(dplyr::as_tibble(tabela_ONS))

    } else{

      resumo_ONS <- tabela_ONS %>%
        dplyr::group_by(data, subsistema) %>%
        dplyr::summarise(percentual = max(subsistema_valor_util))

      return(dplyr::as_tibble(resumo_ONS))
    }

  } else{
    usethis::ui_oops("Você deve escolher {usethis::ui_code('formato=\"tabela\"')} ou {usethis::ui_code('formato=\"resumo\"')} na função.\n\"tabela\" gera um dataframe com diversas variáveis de 39 reservatórios observados pela ONS.\n\"resumo\" gera um relatório dos 4 subsistemas da ONS e a % atual em cada um."
    )
  }
}
brunomioto/reservatoriosBR documentation built on Dec. 19, 2021, 11:50 a.m.