On 01/07/2009 8:20 PM, Hsiu-Khuern Tang wrote:
Is this expected behavior?
z <- 1:5
z[1] <<- 0
Error in z[1] <<- 0 : object "z" not found
The documentation seems to suggest that z will be found in the global
environment and modified accordingly.
z <<- 0 works as documented, it's the indexing that fails. (I tried
other replacement functions and they also failed.) I think this case is
also behaving as documented, but the docs are in the R Language
Definition manual. To evaluate
z[1] <<- 0
the following sequence is what is supposed to happen:
- Look up z in the parent environment of the evaluation frame, and
assign to a temporary variable. (This is what fails; z is in the
evaluation frame, not its parent.)
- Set the first element of the temporary.
- Use <<- to assign the temporary to z.
This might be surprising, but I think it makes sense. Using <<- when
evaluating in the global environment is almost certainly an error;
shouldn't R signal it as such?
Duncan Murdoch
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.