[R] Evaluating Assignment-Operator R 2.0.0
Prof Brian Ripley
ripley at stats.ox.ac.uk
Fri Oct 8 12:06:46 CEST 2004
On Fri, 8 Oct 2004, friedemann wrote:
> Dear Helpers,
>
> in which way I have to use the assignment-operator evaluating left to right
> with R 2.0.0?
<- is the operator you should normally use.
> With R 2.0.0 (w2k-installation) the "superassignment" operator '<<-' seems to
> have a different behaviour compared with R 1.9.1 :
>
> > x<<-4
> > x
> [1] 4
> > attr(x,'y')<<-5
> Error: Object "x" not found
> >
>
> Using earlier versions of R I never got this error.
>
> In the NEWS file and the docs coming along with R 2.0.0 I did not found
> anything concerning this problem.
Did you not notice NEWS contains
o Complex superassignments were wrong when a variable with the same
name existed locally, and were not documented in R-lang.
> AFAIK '=' instead of '<<-' works - but is allowed only for toplevel-
> assignments.
= is allowed almost everywhere <- is, and not just at top-level.
I don't know what you are really trying to do, but
x <- 4
testit <- function() attr(x,'y') <<- 5
testit()
x
works as documented, and that is the normal type of usage of
superassignments. As the NEWS entry says, R-lang (`The R Language
Definition') gives fuller details (and I guess the help page for <<-
should point there).
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list