[R] problem in my code

Thomas Lumley tlumley at u.washington.edu
Mon Jul 10 16:37:07 CEST 2006


On Mon, 10 Jul 2006, Gabor Grothendieck wrote:

> The problem can be reduced to this:
>
> x <- 1
> x[1] <<- 2 # error
>
> The following are ok:
>
> x <- 1
> x[1] <- 3
>
> x <- 1
> x <- 4
>
> x <- 1
> x <<- 5
>
> Does anyone know why?  Is this a bug in <<- ?

No, it's a feature.  The fact that x<<-5 works is arguably a bug (though 
probably not worth fixing).

x[1] <<- 2 is equivalent (per section 3.4.4 of the language guide) to

`*tmp*` <- get("x", envir=parent.env(), inherits=TRUE)
`*tmp*`[1] <- 2
x <<- `*tmp*`

and the get() fails when you try to do this from the command line.  Since 
the point of superassignment is to assign in a lexical parent environment 
it makes no sense to do it directly at the command line.


 	-thomas

Thomas Lumley			Assoc. Professor, Biostatistics
tlumley at u.washington.edu	University of Washington, Seattle



More information about the R-help mailing list