R/classificar_decisao_carf.R

#' Classifica decisões do CARF a partir do dispositivo
#'
#' @param x Tibble criada a partir da função ler_decisao_carf
#' @param dispositivo Nome da coluna contendo o dispositivo
#' @param decisao Nome da nova coluna que conterá a decisão
#'
#' @return Mesma tibble adicionada da coluna com decisão
#' @export
#'
#' @examples
#' \dontrun{
#' df <- classificar_decisao_carf(df)
#' }
classificar_decisao_carf <- function (x, dispositivo = dispositivo, decisao = decisao)
{
  input <- rlang::enexpr(dispositivo)

  decisao_out <- rlang::enexpr(decisao)

  y <- x %>%
    dplyr::distinct(!!input) %>%
    dplyr::mutate(alternativa =  tolower(!!input) %>%
                    stringi::stri_trans_general("latin-ascii"))
  y <-
    y %>% dplyr::mutate(`:=`(
      !!decisao_out,
      dplyr::case_when(
        stringr::str_detect(alternativa,
                            "dar parcial") ~ "parcial",
        stringr::str_detect(alternativa,
                            "julgar provido") ~ "provido",
        stringr::str_detect(alternativa, "prover em parte") ~ "parcial",
        stringr::str_detect(alternativa, "dar(-lhe)? (o )?provimento") ~ "provido",
        stringr::str_detect(alternativa, "negar(-lhe)? (o )?provimento") ~ "improvido",
        stringr::str_detect(alternativa, "nao conhecer") ~ "não conhecido",
        stringr::str_detect(alternativa, "desistencia") ~ "desistência",
        stringr::str_detect(alternativa, "declinar d?a competencia") ~ "incompetente",
        stringr::str_detect(alternativa, "julgar procedente") ~ "procedente",
        stringr::str_detect(alternativa, "julgar improcedente") ~ "improcedente",
        stringr::str_detect(alternativa, "diligencia") ~ "diligência",
        stringr::str_detect(alternativa, "julgar prejudicad[ao]") ~ "prejudicado",
        stringr::str_detect(alternativa, "(anular|declarar a? nul\\w+|considerar nula)") ~ "anulado",
        stringr::str_detect(alternativa, "sobrest\\w+") ~ "sobrestado",
        stringr::str_detect(alternativa, "(?i)extin\\w+") ~ "extinto",
        stringr::str_detect(alternativa, "(acolher (parcialmente )?d?os embargos|conhecer (parcialmente )?d?os embargos)") ~ "embargos acolhidos",
        stringr::str_detect(alternativa, "rejeitar os embargos") ~ "embargos rejeitados",

        TRUE ~ NA_character_
      )
    )) %>%
    dplyr::select(-alternativa)
  x %>% dplyr::left_join(y)
}
jjesusfilho/carf documentation built on Nov. 4, 2019, 2:44 p.m.