Hans-Joerg Bibiko wrote:
> Dear all,
> 
> I wrote some functions using the special argument '...'. OK, it works.
> 
> But if I call such a function which also called such a function, then  
> I get an error message about unused arguments.
> 
> Here's an example:
> 
> fun1 <- function(x,a=1)
> {
>       print(paste("x=",x))
>       print(paste("a=",a))
> }
> fun2 <- function(y,b=2)
> {
>       print(paste("y=",y))
>       print(paste("b=",b))
> }
> myfun <- function(c, ...)
> {
>       print(paste("c=",c))
>       fun1(x=c,...)
>       fun2(y=c,...)
> }
> 
> This is OK.
>  > myfun(c=3)
> [1] "c= 3"
> [1] "x= 3"
> [1] "a= 1"
> [1] "y= 3"
> [1] "b= 2"
> 
>  > myfun(c=3,a=4)
> [1] "c= 3"
> [1] "x= 3"
> [1] "a= 4"
> Error in fun2(y = c, ...) : unused argument(s) (a ...)
> 
> I understand the error message because fun2 has no argument called 'a'.
> 
> But how can I avoid this???
> 
Try Ben Bolker's "clean.args" in the plotrix package
 > myfun(clean.args(list(c=3,a=4),myfun))
[1] "c= 3" "c= 4"
[1] "x= 3" "x= 4"
[1] "a= 1"
[1] "y= 3" "y= 4"
[1] "b= 2"

Jim

______________________________________________
R-help@stat.math.ethz.ch 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.

Reply via email to