[R] The three-dot question

R. Michael Weylandt michael.weylandt at gmail.com
Mon Jan 14 11:33:15 CET 2013


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



More information about the R-help mailing list