Re: [Rd] environmentName

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Sun 07 Jan 2007 - 11:46:25 GMT

On 1/7/07, Duncan Murdoch <murdoch@stats.uwo.ca> 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 Received on Sun Jan 07 22:49:31 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Sun 07 Jan 2007 - 13:31:10 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.