R/w_arregla_niveles.R

Defines functions w_arregla_niveles

Documented in w_arregla_niveles

#' ordenamiento de niveles
#'
#' ordena los niveles de las variables con la estructura 001_niveluno 002_niveldos ... etc dejando intacto el resto de la base
#'
#' @param tabla dataframe que contiene algunas variables que queremos ordenar
#'
#'
#' @return dataframe limpio


# función para limpiar los niveles
w_arregla_niveles <- function(tabla){
  
  # tablita <- datos$p4_seg_int_voto_gober
  
  funcion_identifica_factor <- function(tablita){
    suma <- (str_detect(tablita,'001_') + 
               str_detect(tablita,'002_') + 
               str_detect(tablita,'003_') + 
               str_detect(tablita,'004_') + 
               str_detect(tablita,'005_') +
               str_detect(tablita,'006_') + 
               str_detect(tablita,'007_') + 
               str_detect(tablita,'008_') + 
               str_detect(tablita,'009_') +
               str_detect(tablita,'010_')) %>%
      sum(.,na.rm = T)
    
    if(suma == 0 | is.na(suma)){
      resultado <- FALSE
    }else{
      resultado <- TRUE
    }
    return(resultado)
  }
  funcion_limpia <- function(limpia,tablita){
    
    resultado <- tablita
    if(limpia){
      resultado <- factor(tablita,ordered = T)
      levels(resultado) <- str_sub(levels(resultado),5)
    }
    return(resultado)
  }
  
  resultado <- map(tabla,funcion_identifica_factor) %>%
    map2(.,tabla,funcion_limpia) %>%
    data.frame
  
  names(resultado) <- names(tabla)
  return(resultado)
}
pelishk/upax_library documentation built on Nov. 28, 2022, 10:45 a.m.