Message-ID: <44AB9847.9030803@stats.uwo.ca>
Date: 2006-07-05T10:45:27Z
From: Duncan Murdoch
Subject: attributes of environments
In-Reply-To: <971536df0607042012h43eb1581n418e9cddfe3a51bb@mail.gmail.com>
On 7/4/2006 11:12 PM, Gabor Grothendieck wrote:
> In the code below, e is an environment which we copy to f and then
> add attributes to e. Now f winds up with the same attributes.
>
> In other words it seems that the attributes are a property of the
> environment itself and not of the variable. Thus it appears we
> cannot have two environment variables that correspond to the
> original environment but with different attributes.
>
> I can understand if we changed a component of e then
> f would reflect that too but I am not sure that this is also
> desirable for attributes as they are not "in" the environment.
>
> Is that desirable? Is it a bug? No other class works that way
> AFAIK. Comments?
I'm not sure about whether this is desirable or a bug, but environments
are special, in that they are among the very few objects treated as
references. In your example, adding a variable to e will also make it
visible in f.
Duncan Murdoch
>
>> e <- new.env()
>> f <- e
>> attr(e, "X") <- "Y" # X is an attribute of e
>> f # f gets the same attribute !!!
> <environment: 0x01a577f0>
> attr(,"X")
> [1] "Y"
>> R.version.string # Windows XP
> [1] "R version 2.4.0 Under development (unstable) (2006-07-04 r38480)"
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel