Hi Feng, I'm afraid I don't entirely understansd your question -- the `...` construct only allows you to pass variable numbers of arguments, not to have arbitrary access to the parent frames. You need to manually extract "b" from the dots inside of testFun.
Also, it's quite frowned upon to put ##rm(list = ls())## in your examples: it's the mailing list equivalent of asking a buddy to come over to help you move and then punching him in the face when he tries to lift your sofa. Cheers, Michael On Mon, Jan 14, 2013 at 10:21 AM, Feng Li <m...@feng.li> wrote: > Dear all, > > Why does not the three-dot accept arguments from the parent environment? > I am just confused with this error, can someone give me a hint? > >> rm(list=ls()) >> testFun <- function(a, ...) > + { > + if(a){ > + print(a) > + }else > + { > + print(b) > + } > + } >> >> myTask <- function(a) > + { > + b <- 3 > + testFun(a, b = b) > + } >> myTask(FALSE) > Error in print(b) : object 'b' not found > > > Thanks in advance! > > Feng > > -- > Feng Li > Department of Statistics > Stockholm University > SE-106 91 Stockholm, Sweden > http://feng.li/ > > ______________________________________________ > R-help@r-project.org 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. ______________________________________________ R-help@r-project.org 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.