R/manually_set_names.R

Defines functions manually_set_names

Documented in manually_set_names

#' A console input/output interface to manually set new names for a vector
#'
#' @param original_vec The vector to be changed
#'
#' @return A vector with new names
#'
#' @examples
#' manually_set_names(names(mtcars))
#'
#' @importFrom magrittr %>%
#'
#' @export
manually_set_names <- function(original_vec){

  new_vector <- stringr::str_to_lower(original_vec) %>%
    make.names(., unique = TRUE, allow_ = TRUE) %>%
    stringr::str_replace_all(., stringr::fixed("."), "_")

  n <- length(original_vec)
  out <- original_vec
  i <- 1

  while (i <= n){
    print(paste0("Original name: '", original_vec[i], "' suggested alternative: '", new_vector[i], "'"))

    new_name <- readline(prompt="Enter A to accept, new name to run-over, '-' to skip once, ! to break, 1 to go up: ")

    if (new_name == "!"){
      return(out)
    } else if (new_name == "1"){
      new_name <- original_vec[i]
      i <- i-2

    } else if (new_name == "A") {

      out[i] <- new_vector[i]

    } else if (new_name != "-"){

      out[i] <- new_name

    } else {

      out[i] <- original_vec[i]

    }

    i <- i+1
  }
  return(out)
}
sarid-ins/saridr documentation built on Nov. 10, 2020, 9:07 p.m.