#' 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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.