R/w_rm_menciones_a_columnas.R

Defines functions w_rm_menciones_a_columnas

Documented in w_rm_menciones_a_columnas

#' función para transformar menciones a columnas
#'
#' Transforma conjuntos de respuesta múltiple que vienen como columnas de orden de mención y las convierte en columnas, una columna por marca
#'
#' @param tabla dataframe
#' @param prefijo character para saber qué nombre compartiran todas las variables
#'
#' @return Un archivo que tiene


# función para transformar matriz de marcas a matriz de menciones y su inversa

w_rm_menciones_a_columnas <- function(tabla,prefijo){

  f_crea_dataframe_con_nombres <- function(columnas,casos){

    a <- data.frame(nulo = rep(NA,casos))

    for(i in columnas){
      eval(parse(text = paste0(
        'a[,"',i,'"] <- FALSE'
      )))
    }

    a <- a[,-1]

    return(a)

  }

  f_llena_dataframe <- function(resultado,tabla){
    resumen <- tabla %>%
      unite(.,todo) %>% unlist

    resultado_final <- map(names(resultado),str_detect,string = resumen) %>% data.frame %>% setNames(names(resultado))

    return(resultado_final)

  }

  columnas <- map(tabla,levels) %>% unlist %>% unique
  resultado <- f_crea_dataframe_con_nombres(columnas,nrow(tabla)) %>%
    f_llena_dataframe(.,tabla)

  names(resultado) <- paste0(prefijo,'_',names(resultado))

  return(resultado)

}
pelishk/upax_library documentation built on Nov. 28, 2022, 10:45 a.m.