I want to create a wrapper function replacing some of the default arguments.
Here the core of the problem I'm struggling with:
Error in localWindow(xlim, ylim, log, asp, ...) :
formal argument "cex" matched by multiple actual arguments
Now a bit of a context. Suppose I define a wrapper function for plot like this:
myplot <- function(x, ... ) {
plot(x, cex= 1.5, ... )
}
If I call myplot( 1:10, cex= 2 )
I will get the above error. I know I can turn ...
to a list
l <- list(...)
and then I could do
if( is.null( l[["cex"]] ) ) l[["cex"]] <- 2
However, how can I "insert" this list back to the ellipsis argument? Something like (I know this won't work):
... <- l
EDIT: I could use defaults in myplot
definition (as suggested in the answer from @Thomas), but I don't want to: the function interface will become cluttered. I guess I could define a helper function like that:
.myfunchelper <- function( x, cex= 2.0, ... ) {
plot( x, cex= cex, ... )
}
myfunc <- function( x, ... ) {
.myfunchelper( x, ... )
}
But (i) it is less elegant and (ii) doesn't satisfy my curiosity.