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@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel