I'm writing wrappers for some functions that change some of the default
arguments. I'd rather not list all of the arguments for the low level
functions because there are about a dozen wrapper functions, and about
20 arguments to lowlevel. Instead I'm trying something like this:
lowlevel <- function(longname = 1) {
cat("longname = ", longname, "\n")
}
wrapper <- function(...) {
newargs <- list(longname = 2)
newargs[names(list(...))] <- list(...)
do.call("lowlevel", newargs)
}
This almost works:
> wrapper()
longname = 2
> wrapper(longname = 3)
longname = 3
But it fails if I try to use partial argument matching:
> wrapper(long=4)
Error in lowlevel(longname = 2, long = 4) :
unused argument(s) (long ...)
because long isn't matched to longname. Is there a reasonable way to do
this (e.g. using pmatch or charmatch) other than listing all the low
level arguments in the argument list to wrapper?
Duncan Murdoch
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel