Liaw, Andy
2006-Aug-16 16:09 UTC
[R] Problem with the special argument '...' within a function
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 From: Hans-Joerg Bibiko> > 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 > > ______________________________________________ > R-help at 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. > >
Hans-Joerg Bibiko
2006-Aug-16 17:29 UTC
[R] Problem with the special argument '...' within a function
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 >>