On 09/05/2014, 6:54 AM, Rainer M Krug wrote:>
> How can I access an object in an attached but deleted environment, when
> the object also exists in the .GolbalEnv?
Attaching a variable to the search list generally makes a copy of it, so
it can't be "attached but deleted". However, "making a
copy" of an
environment just copies the reference to it, so your environment still
exists on the search list, it just doesn't have a name in the global
environment.
>
> I hope the example below makes the question clear:
>
> --8<---------------cut here---------------start------------->8---
> tmp <- attach(what=NULL, name="org:variables")
> tmp$test = 13
> rm(tmp)
> test
> # > 13
> test <- 24
> test
> # > 24
> ls(all=TRUE)
> # > character(0)
I don't know why you would have seen character(0) here. You should have
seen "test" in the list, because you created it a couple of lines
earlier.
> #
> # how can I access the variable test in the object org:variables in the
> # search path?
> #
> rm(test)
> test
> # > 13
> --8<---------------cut here---------------end--------------->8---
>
> Any suggestions?
You can use assign, or get a reference to the environment using
as.environment("org:variables"), and access it within that. For
example,
assign("test", 24, pos="org:variables")
or
e <- as.environment("org:variables")
e$test <- 24
Duncan Murdoch