[Rd] Expanding partial names
Duncan Murdoch
murdoch at stats.uwo.ca
Tue Mar 7 15:03:01 CET 2006
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
More information about the R-devel
mailing list