Has anyone developed a version of do.call that is safe in the sense that it silently drops parameters that do not appear in the formals of the called function? This is useful when ... ends up being used in multiple further functions. e.g.
f <- function(a, b) {a + b} do.call(f, list(a=1, b=2, c=3)) # Errors safe.call(f, list(a=1, b=2, c=3)) # Returns 3 If have quickly thrown together the following, but it doesn't support position based calls, and I'd like to avoid reinventing the wheel. safe.call <- function(f, params, f.params = names(formals(f))) { if ("..." %in% f.params) { safe.params <- params } else { safe.params <- params[intersect(f.params, names(params))] } do.call(f, safe.params) } I hope to use safe.call to prevent a wide class of potential bugs in ggplot2. Hadley -- http://had.co.nz/ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel