[R] Retrieve ... argument values
Ben Bolker
bolker at zoo.ufl.edu
Tue Sep 16 17:17:36 CEST 2003
Yes, although this becomes tedious if (e.g.) you have a function that
calls two different functions, each of which has many arguments (e.g.
plot() and barplot(); then you have to set up a whole lot of arguments
that default to NULL and, more annoyingly, you have to document them all
in any .Rd file you create -- rather than just having a ... argument which
you can say should contain arguments for either of the subfunctions (as
long as the arguments don't overlap, of course)
Ben
On Tue, 16 Sep 2003, Simon Fear wrote:
> For most purposes a more useful technique is to write the
> function with a default NULL argument
>
> myfunc <- function(x, ylim=NULL)
>
> so that it can be called as myfunc(x) or myfunc(x,y). Inside
> the function you test for !is.null(ylim) and take appropriate
> action.
>
> Alternatively, and maybe more commonly, you give ylim a
> sensible default so the caller has to be explicit about
> setting ylim to NULL if required.
>
> As it happens, in your specific case you can write as you did except
> for the pseudo-line(hasArg(ylim)), because all arguments will get
> passed to plot, which will itself recognise and test for
> an argument called ylim, within its own "...".
>
> HTH
>
> > -----Original Message-----
> > From: huan.huang at bnpparibas.com [mailto:huan.huang at bnpparibas.com]
> > Sent: 16 September 2003 15:14
> > To: r-help at stat.math.ethz.ch
> > Subject: [R] Retrieve ... argument values
> >
> >
> > Security Warning:
> > If you are not sure an attachment is safe to open please contact
> > Andy on x234. There are 0 attachments with this message.
> > ________________________________________________________________
> >
> >
> > Dear R users,
> >
> > I want to retrieve "..." argument values within a function. Here is a
> > small
> > exmaple:
> >
> > myfunc <- function(x, ...)
> > {
> > if (hasArg(ylim)) a <- ylim
> > plot(x, ...)
> > }
> >
> > x <- rnorm(100)
> > myfunc(x, ylim=c(-0.5, 0.5))
> > Error in myfunc(x, ylim = c(-0.5, 0.5)) : Object "ylim" not found
> > >
> >
> > I need to retrieve values of "ylim" (if it is defined when function is
> > called) for later use in the function. Can anybody give me some hint?
> >
> > Thanks a lot.
> >
> > Huan
> >
> >
> >
> >
> > This message and any attachments (the "message") is\
> > intende...{{dropped}}
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> >
>
>
> Simon Fear
> Senior Statistician
> Syne qua non Ltd
> Tel: +44 (0) 1379 644449
> Fax: +44 (0) 1379 644445
> email: Simon.Fear at synequanon.com
> web: http://www.synequanon.com
>
> Number of attachments included with this message: 0
>
> This message (and any associated files) is confidential and\...{{dropped}}
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>
--
620B Bartram Hall bolker at zoo.ufl.edu
Zoology Department, University of Florida http://www.zoo.ufl.edu/bolker
Box 118525 (ph) 352-392-5697
Gainesville, FL 32611-8525 (fax) 352-392-3704
More information about the R-help
mailing list