[R] best practice(s) for retrieving a local variable from a closure

Benjamin Tyner btyner at gmail.com
Sat Apr 9 03:48:05 CEST 2011


Greetings,

Say I have defined

  mp <- function(a) function(x) x^a

  f2 <- mp(2)

and I would like to retrieve the "a" which is local to f2. Two options 
come to mind;

  get("a", envir=environment(f2))
  eval(substitute(a), environment(f2))

I'm curious if one of these is preferred over the other in terms of 
efficiency, robustness, aesthetics, etc. Or perhaps someone can share 
another way to skin this cat, besides wrappers around eval() like

  evalq(a, environment(f2))
  with(environment(f2), a)

Also, I'd like to confirm that I have used the correct terminology in 
the subject line, that "a" is a local variable with respect to f2, which 
is a closure?

Thanks,
Ben


More information about the R-help mailing list