[R] Problem with the special argument '...' within a function

Hans-Joerg Bibiko bibiko at eva.mpg.de
Wed Aug 16 14:56:24 CEST 2006


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???

I want to use this in order to be able to call myfun() with all  
arguments to control myfun(),fun1(), and fun2().

Please help!

Thanks,

Hans



More information about the R-help mailing list