On 10/28/06, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > On 10/28/2006 6:03 PM, Philippe Grosjean wrote: > > Duncan Murdoch wrote: > > [...] > >> I've just added this function to R-devel (to become 2.5.0 next spring): > >> > >> withVisible <- function(x) { > >> x <- substitute(x) > >> v <- .Internal(eval.with.vis(x, parent.frame(), baseenv())) > >> v > >> } > >> > >> Luke Tierney suggested simplifying the interface (no need to duplicate > >> the 3 parameter eval interface, you can just wrap this in evalq() if you > >> need that flexibility); the name "with.vis" was suggested, but it looks > >> like an S3 method for the with() generic, so I renamed it. > >> > >> Duncan Murdoch > > > > Excellent, many thanks... but I am afraid I cannot use this function > > because you force evaluation on parent.frame(), where I need to evaluate > > it in .GlobalEnv (which is NOT equal to parent.frame() in my context). > > Would it be possible to change it to: > > > > withVisible <- function(x, env = parent.frame()) { > > x <- substitute(x) > > v <- .Internal(eval.with.vis(x, env, baseenv())) > > v > > } > > > > ...so that we got additional flexibility? > > As I said, that's not needed. Use evalq(withVisible(x), envir=.GlobalEnv).
Even if its not strictly necessary in terms of minimality it still might be convenient and consistent with other eval-style functions which do tend to provide an env= or in the case of lm-style functions a data= argument. Also its very easy to do and the underlying internal function supports it. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel