[R] manipulating "..." inside a function

Ben Bolker ben at zoo.ufl.edu
Fri Mar 21 21:59:23 CET 2003


  I have a couple of slightly ugly functions to do this in my bbmisc 
package:

clean.args <- function(argstr,fn,extrabad=NULL,dots.ok=TRUE) {
  fnargs <- names(formals(fn))
  if (length(argstr)>0 && !("..." %in% fnargs && dots.ok))  {
    badargs <- !sapply(names(argstr),"%in%",c(fnargs,""))
    argstr <- argstr[!badargs]
  }
  for (i in extrabad)
    argstr[[i]] <- NULL
  argstr
}

remove.args <- function(argstr,fn) {
  fnargs <- names(formals(fn))
  argstr[!(names(argstr) %in% fnargs)]
}


On Fri, 21 Mar 2003, Liaw, Andy wrote:

> Dear R-help,
> 
> Can some one tell me how to do the following (if it's possible)?
> 
> Suppose I have a function like this:
> 
> f <- function(x, y, ...) {
>     ## some code
>     g(x, y, ...)
>    ## some more code
> }
> 
> The problem is that g() may not understand everything that comes through in
> "...".  Is there a way to delete some component of "..." and then pass it to
> g()?
> 
> Here's the description of the real problem:  f() is a panel.something
> function, and g() is a model fitting function.  Lattice passes
> "panel.number" as part of "..." to f(), and g() complains about unused
> argument "panel.number".
> 
> I'd be very grateful for any help!
> 
> Cheers,
> Andy
> 
> 
> ------------------------------------------------------------------------------
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> 

-- 
318 Carr 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