R/organizar_dados_cpopg_tjac.R

Defines functions organizar_dados_cpopg_tjac

Documented in organizar_dados_cpopg_tjac

#' Organiza metadados cpopg (apenas criminal por ora)
#'
#' @param df data.frame lido com ler_dados_cpopg
#' @param excluir_assunto informar vetor de frases a serem excluídas dos assuntos.
#'     Há uma sugestão de palavras no dataset 'excluir_assuntos_cpopg'
#' @param excluir_classe informar vetor de frases a serem excluídas das classes.
#' @return data.frame limpo e organizado
#' @export
#'
organizar_dados_cpopg_tjac <- function(df, excluir_assunto = "", excluir_classe = "") {
  df <- df %>%
    janitor::clean_names()


  #  Nem todos os processos s\u00e3o distribu\u00eddos, alguns s\u00e3o recebidos,
  ## Juntei data da distribui\u00e7\u00e3o e recebimento num s\u00f3.
  ## O mesmo vale para classe vs execucao_de_sentenca vs incidente e
  ## para processo_principal e processo_2.

  suppressWarnings({
    df$na <- NA_character_

    df$distribuicao <- dplyr::coalesce(df$na, df$distribuicao, df$recebido_em)
    df$classe <- dplyr::coalesce(df$na, df$classe, df$execucao_de_sentenca, df$incidente)
    df$processo_principal <- dplyr::coalesce(df$na, df$processo_principal, df$processo_2)

    df$recebido_em <- NULL
    df$processo_2 <- NULL
    df$execucao_de_sentenca <- NULL
    df$incidente <- NULL
    df$na <- NULL


    if (nrow(df) > 0) {
      df <- df %>%
        dplyr::mutate(
          branco = dplyr::case_when(
            stringr::str_detect(v1, "(?i)[\u00e1a]rea") ~ "area",
            v1 == "(Tramita\u00e7\u00e3o priorit\u00e1ria)" ~ "prioritaria",
            TRUE ~ "vara"
          )
        ) %>%
        tidyr::unite("v2", assunto, v1, sep = "&", remove = FALSE) %>%
        tibble::rowid_to_column() %>%
        tidyr::spread(branco, v2) %>%
        dplyr::mutate_at(dplyr::vars(area, vara), list(~ stringr::str_remove(., "NA&"))) %>%
        dplyr::mutate(vara = zoo::na.locf(vara, fromLast = T, na.rm = FALSE)) %>%
        dplyr::filter(!is.na(distribuicao) | !is.na(classe) | !is.na(assunto)) %>%
        dplyr::filter(!is.element(assunto, excluir_assunto)) %>%
        dplyr::mutate(
          data_recebimento = stringr::str_extract(distribuicao, "\\d+/\\d+/\\d+") %>%
            lubridate::dmy(),
          horario_recebimento = stringr::str_extract(distribuicao, "\\d{2}:\\d{2}") %>%
            lubridate::hm(),
          tipo_recebimento = stringr::str_extract(distribuicao, "(?<=-\\s).+"),
          distribuicao = NULL
        ) %>%
        tidyr::separate(vara, c("vara", "foro"), sep = " - ", extra = "merge") %>%
        dplyr::mutate(
          area = stringr::str_remove_all(v1, "(?i)(\u00c1rea|\\W+)"),
          v1 = NULL
        )


      df <- df %>%
        dplyr::filter(!is.element(classe, excluir_classe)) %>%
        dplyr::mutate(rowid = NULL)

      if (exists("prioritaria", df, inherits = FALSE)) {
        df <- dplyr::mutate(df, prioritaria = stringr::str_remove(prioritaria, "&.+"))
      }

      if (exists("valor_da_acao", df, inherits = FALSE)) {
        df <- dplyr::mutate(df, valor_da_acao = tjac::numero(valor_da_acao))
      }
    }
  })
  return(df)
}
jjesusfilho/tjac documentation built on Feb. 5, 2020, 11:04 a.m.