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
[EMAIL PROTECTED] University of Washington, Seattle
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html