[Rd] attributes of environments

Duncan Murdoch murdoch at stats.uwo.ca
Wed Jul 5 12:45:27 CEST 2006


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



More information about the R-devel mailing list