stp <- function(x, s = c("m","med","sd","riq","min","max"), digits = 3, na.rm = TRUE){ f <- list( m = mean, med = median, sd = sd, riq = IQR, min = min, max = max ) s <- match.arg(tolower(s), choices = names(f), several.ok = TRUE) out <- vapply(s, function(k) f[[k]](x, na.rm = na.rm), numeric(1)) round(setNames(out, s), digits) } stp_add <- function(lista, x, var, s = c("m","med","sd","riq","min","max"), digits = 3, na.rm = TRUE, sep = "_"){ vals <- stp(x, s = s, digits = digits, na.rm = na.rm) names(vals) <- paste0(names(vals), sep, var) lista[names(vals)] <- as.list(vals) lista }