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

Reply via email to