[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