On 1/7/07, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > On 1/7/2007 5:01 AM, Gabor Grothendieck wrote: > > I noticed the new environmentName in R 2.5.0dev. Thus I gather that > > each environment has: > > > > (1) a name > > (2) a hex value > > > > so > > > > 1. environmentName gets the name. Is there any way to set the name? > > The NEWS entry says: > > o New function environmentName() to give the print name of > environments such as "namespace:base". > This is now used by str(). > > Take a look at the implementation in src/main/builtin.c. The name isn't > part of the environment, this is just derived from how the environment > is being used. > > If you want to attach a label to an environment, use an attribute. You > can put an S3 class on an environment if you want it to print your label > by default rather than use the standard print mechanism. > > > 2. is there any way to get the hex value for an environment other than > > doing: > > e <- new.env() > > capture.output(e) > > Not in R code, but there's no use for it in R code, either. If you want
The proto package currently uses capture.output, as above, to get a printable unique identifier for environments: > library(proto) > name.proto(new.env()) [1] "0x0195860c" This is used to display the relationships among environment and proto objects in graph.proto and str.proto . It would be nice to be able to get the hex identifier directly rather than having to go through this indirect method. > to test for whether two variables refer to the same environment, then > attach a unique label to the environments when you create them and check > the labels. Its possible to assign a name to a proto object but I need to be able to generate an identifier even if the object does not have a name. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel