Odd outcome of attr with environments (PR#2148)

j.c.rougier@durham.ac.uk j.c.rougier@durham.ac.uk
Fri, 11 Oct 2002 20:38:44 +0200 (MET DST)


Hi everyone,

I think the following error is slightly odd:

> fred <- new.env()
> happy <- function() fred
> happy()
<environment: 0x8a425b8>
> attr(happy(), "foo") <- 1:10
Error: invalid (NULL) left side of assignment

But naturally this works

> attr(fred, "foo") <- 1:10
> fred
<environment: 0x8a425b8>
attr(,"foo")
 [1]  1  2  3  4  5  6  7  8  9 10

I would have thought that "fred" and "happy()" were synonymous, so I
was surprised that I could not attach an attribute to the environment
using "happy()".  Of course in practice I can get round this by doing

> sad <- happy()
> attr(sad, "foo") <- 5:1
> sad
<environment: 0x8a425b8>
attr(,"foo")
[1] 5 4 3 2 1
> happy()
<environment: 0x8a425b8>
attr(,"foo")
[1] 5 4 3 2 1

but I wondered what was going on.

Cheers, Jonathan.

--please do not edit the information below--

Version:
 platform = i686-pc-linux-gnu
 arch = i686
 os = linux-gnu
 system = i686, linux-gnu
 status = 
 major = 1
 minor = 6.0
 year = 2002
 month = 10
 day = 01
 language = R

Search Path:
 .GlobalEnv, Autoloads, package:base

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._