On 18/12/2008 7:19 PM, Dan Kelley wrote:
Is there a way a function ('parent', say) can manipulate the ... argument,
and then pass the manipulated value into another function ('child', say)
that it calls?
What I'm trying to do is to use some plotting defaults within 'parent' that
are not part of parent's argument list, but to let the use over-ride these
defaults if they choose. A sketch is below.
parent <- function(stuff, ...) {
dots <- list(...)
if (!"type" in names(list)) dots$type='p'
plot(stuff, unlist(dots)) # or alist()? or what?
You use the do.call() function to construct the call. The first arg is
what to call, the second is a list containing the args to pass. Since
you've got both stuff and dots to pass, you concatenate them into one
big list:
do.call(plot, c(list(stuff), dots))
Duncan Murdoch
}
I know, I can just make "type" be a formal argument of 'parent', and I'm
happy to do that, but I'm still in the learning stages with R, and so I'm
trying to become more familiar with as much R syntax as I can, even if I end
up doing things differently later on.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.