[R] Using the ``...'' argument.

ripley@stats.ox.ac.uk ripley at stats.ox.ac.uk
Sat Nov 9 07:30:58 CET 2002


Adding ... to the argument lists of foo and bar will allow your first
solution to work.

On Fri, 8 Nov 2002, Rolf Turner wrote:

>
> Suppose that I have a function fff which calls a couple of functions
> foo and bar, and that foo takes optional arguments a and b, and bar
> takes optional arguments u and v.
>
> Is there an elegant way of passing ***both*** sets of optional
> arguments via a ``...'' argument for fff?
>
> I'd like to be able to have a structure like:
>
> 	fff(x,y,z,...) {
>               .
> 	a1 <- foo(x,y,...)
> 	b1 <- bar(z,...)
>               .
> 	}
>
> and be able to give calls such as
>
> 	w1 <- fff(x,y,z,a=2,b=3,u=4,v=5)
> 	w2 <- fff(x,y,z,a=2,v=5)         # Letting b take its default value
>                                          # in foo() and u take its default
> 					 # value in bar()
> 	w3 <- fff(x,y,z,a=2,b=3)         # Letting both u and v take their
> 					 # default values in bar()
>
> and so on.  This of course doesn't work --- complaints about
> ``unused arguments'' are generated and fff() falls over.
>
> One workaround that I can think of is
>
> 	fff(x,y,z,...) {
>               .
> 	tmp <- list(x,y,...)
> 	tmp[c("u","v")] <- NULL
> 	a1 <- do.call("foo",NULL)
> 	tmp <- list(z,...)
> 	tmp[c("a","b")] <- NULL
> 	b1 <- do.call("bar",tmp)
>               .
> 	}
>
> but this is pretty kludgy.  Is there a better way?  Am I overlooking
> something obvious?
>
> 					cheers,
>
> 						Rolf Turner
> 						rolf at math.unb.ca
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list