The three-dot question
Hi Michael, Thanks for the reply.
On Mon, 2013-01-14 at 10:33 +0000, R. Michael Weylandt wrote:
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.
The rm line just wants to declare there is no "b" in the global environment. I did not mean people ought to try it. Also notice that there is ">" in front of the rm. You won't get hurt if you just copy and paste it. If it bites you, the mouse and keyboard did it:) Cheers, Feng
Cheers, Michael On Mon, Jan 14, 2013 at 10:21 AM, Feng Li <m at 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 at 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.
Feng Li Department of Statistics Stockholm University SE-106 91 Stockholm, Sweden http://feng.li/