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

Hans-Joerg Bibiko bibiko at eva.mpg.de
Wed Aug 16 19:29:16 CEST 2006


Quoting "Liaw, Andy" <andy_liaw at merck.com>:

> I'm not sure if this is what you want, but simply add ... to the list of
> arguments for fun1 and fun2 would eliminate the error.
>
> Andy
>

That's it!!

Thank you very much!!

Best,

Hans


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