[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