how to manipulate ... within a function
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.