[R] how modify object in parent.env
Marc Schwartz
MSchwartz at MedAnalytics.com
Wed Mar 9 01:03:45 CET 2005
On Tue, 2005-03-08 at 15:36 -0800, Vadim Ogranovich wrote:
> Hi,
>
> Is it possible to modify an object in the parent.env (as opposed to
> re-bind)? Here is what I tried:
>
> > x = 1:3
> # try to modify the first element of x from within a new environment
> > local(get("x", parent.env(environment()))[1] <- NA)
> Error in eval(expr, envir, enclos) : Target of assignment expands to
> non-language object
>
> # On the other hand retrieval works just fine
> > local(get("x", parent.env(environment()))[1])
> [1] 1
You could try this:
> x <- 1:3
mod.x <- function(x)
{
eval.parent(substitute(x[1] <- NA))
}
> x
[1] 1 2 3
> mod.x(x)
> x
[1] NA 2 3
See ?eval.parent for more information and variations on this.
HTH,
Marc Schwartz
More information about the R-help
mailing list