From murdoch at stats.uwo.ca  Wed Jul  5 12:45:27 2006
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Wed, 05 Jul 2006 06:45:27 -0400
Subject: [Rd] attributes of environments
In-Reply-To: <971536df0607042012h43eb1581n418e9cddfe3a51bb@mail.gmail.com>
References: <971536df0607042012h43eb1581n418e9cddfe3a51bb@mail.gmail.com>
Message-ID: <44AB9847.9030803@stats.uwo.ca>

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



[Rd] attributes of environments
Duncan Murdoch