1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
#' Duplicate and concatenate strings within a character vector.
#'
#' Vectorised over \code{string} and \code{times}.
#'
#' @param string input character vector
#' @param times number of times to duplicate each string
#' @return character vector
#' @keywords character
#' @export
#' @examples
#' fruit <- c("apple", "pear", "banana")
#' str_dup(fruit, 2)
#' str_dup(fruit, 1:3)
#' str_c("ba", str_dup("na", 0:5))
str_dup <- function(string, times) {
string <- check_string(string)
# Use data frame to do recycling
data <- data.frame(string, times)
n <- nrow(data)
string <- data$string
times <- data$times
output <- vapply(seq_len(n), function(i) {
paste(rep.int(string[i], times[i]), collapse = "")
}, character(1))
names(output) <- names(string)
output
}
|