[R] The three-dot question

Feng Li m at feng.li
Mon Jan 14 16:10:08 CET 2013


That makes sense. Thanks!


Feng


On Mon, 2013-01-14 at 09:09 -0500, Mark Leeds wrote:
> Hi: If you want testFun to know about b, then you would have to do
> b<-list(...)$b inside
> TestFun itself.  But the dot dot dot argument is not really for that
> purpose. 
> 
> The use of dotdotdot is for the case where a function INSIDE testFun
> has a formal argument named say b. Then you can pass the ... at the
> top level and the function inside will receive the ... but
> automatically slurp the b out of the dot dot dot and know about it.
> Below is an example of the use I'm talking about. It was created by a
> mentoR when I was trying to understand the dotdotdot concept. 
> hope it helps you. 
> 
> #======================================================================
> 
> Note that f does not directly know about x and g does.  That is g
> knows about x even though f does
> not know and g got it from f.
> 
> g <- function(x, ...) { cat("g: exists('x') = ", exists("x"), "\n");
> list(...) }
> f <- function(...) { cat("f: exists('x') = ", exists("x"), "\n");
> g(...) }
> f(x = 3, y = 4)
> f: exists('x') =  FALSE
> g: exists('x') =  TRUE
> $y
> 
> 
> 
> 
> On Mon, Jan 14, 2013 at 5: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/



More information about the R-help mailing list