R/internal.R

Defines functions rprintf.match makelist rsprintf

setnames <- `names<-`

patterns <- c(
  rsprintf = "(?<!%)%[\\s\\+\\-\\#\\.\\d]*\\w",
  rprintv = "(?<!\\$)\\$[\\w\\.]+(:[\\s\\+\\-\\#\\.\\d]*\\w)?",
  rprintn = "(?<!\\{)\\{\\d+(:[\\s\\+\\-\\#\\.\\d]*\\w)?\\}(?!\\})",
  rsprintf = ".")

rprintf.match <- function(x, fun, args, envir) {
  do.call(fun, c(x, args), envir = envir)
}

makelist <- function(...) {
  ## better use do.call(c,list(...))
  args <- list(...)
  if (any(vapply(args, is.list, logical(1L))))
    unlist(args, recursive = FALSE) else args
}

rsprintf <- function(.format, ..., .envir = parent.frame()) {
  args <- makelist(...)
  do.call(sprintf, c(.format, args), envir = .envir)
}
renkun-ken/rprintf documentation built on May 27, 2019, 5:50 a.m.