[R] eval using a environment X but resultsin .GlobalEnv
Duncan Murdoch
murdoch at stats.uwo.ca
Mon Jan 5 12:34:23 CET 2009
Saptarshi Guha wrote:
> Hello,
> Suppose I have an expression, E, which accesses some variables present
> in an environment V.
> I do this via
> eval(E,envir=V)
> however all assignments end up in V. I would like the results of
> assignments in E to end up in the .GlobalEnv ? Or at least the calling
> environment.
> Is there a quick way to this instead of iterating over all objects E
> and assigning into .GlobalEnv?
If you don't have control of E to make the changes Gabor suggested, then
I don't think you can do it without iteration. But you can leave V
alone as follows:
V2 <- new.env(parent=V)
eval(E, envir=V2) # Assignments happen in V2
Now iterate over V2 to move things into .GlobalEnv if you want, e.g.
names <- ls(V2, all=TRUE)
for (n in names) assign(n, get(n, envir=V2))
Duncan Murdoch
More information about the R-help
mailing list