R/p_limpia_nombres_variable.R

Defines functions p_limpia_nombres_variable

Documented in p_limpia_nombres_variable

#' limpieza de nombres
#'
#' Función para limpiar los nombres de las variables en una tabla de política
#'
#' @param tabla dataframe - tabla en la que deseamos limpiar los nombres


#' @return dataframe con los nombres limpios

#' 
p_limpia_nombres_variable <- function(tabla){
  require(stringr)
  require(purrr)
  require(magrittr)
  
  funcion_limpia_opinion_conocimiento <- function(tabla){
    nombres <- str_detect(names(tabla),'conocimientoper') %>%
      names(tabla)[.] %>%
      map(.,str_extract," .*") %>%
      map(.,str_trim) %>%
      map(.,str_replace_all,' ','_') %>% 
      unlist
    
    indices_conocimiento <- str_detect(names(tabla),'conocimientoper') %>% which
    indices_opinion <- str_detect(names(tabla),'opinionper') %>% which
    
    names(tabla)[indices_conocimiento] <- paste0('conocimientoper_',nombres)
    names(tabla)[indices_opinion] <- paste0('opinionper_',nombres)
    
    return(tabla)
    
  } 
  
  funcion_limpia_prefijos <- function(vector){
    resultado <- vector
    if(str_sub(vector,1,1) == 'p' & str_detect(vector,'_')){
      resultado <- str_extract(vector, "_(.*)") %>% str_sub(.,2,100000)
    }
    return(resultado)
  }
  
  
  tabla <- funcion_limpia_opinion_conocimiento(tabla)
  
  names(tabla) <- names(tabla) %>% str_extract(., "[^\\.]+") %>% 
    str_extract(., "[^ ]+") %>% str_extract(., "[^\t ]+") %>% 
    map(.,funcion_limpia_prefijos) %>% unlist %>% 
    make.unique(.)
  
  return(tabla)
}
pelishk/upax_library documentation built on Nov. 28, 2022, 10:45 a.m.