Wacek Kusnierczyk wrote:
Wacek Kusnierczyk wrote:
it's a pity that <<- is not explained in ?`<<-` clearly enough:

"  The operators '<<-' and '->>' cause a search to made through the
     environment for an existing definition of the variable being
     assigned.  If such a variable is found (and its binding is not
     locked) then its value is redefined, otherwise assignment takes
     place in the global environment.  Note that their semantics differ
     from that in the S language, but are useful in conjunction with
     the scoping rules of R.  See 'The R Language Definition' manual
     for further details and examples."


the description is further imprecise as to what happens if such a
variable is found but is locked:

foo = function() {
   x = 0
   lockBinding("x", environment())
   (function() x <<- 1)()
   unlockBinding("x", environment())
}

foo()
# error

if analysed logically (IF (found AND not locked THEN assign) ELSE assign
globally), the description is wrong.

Yes.

If such a variable is found then its value is redefined (unless its binding is locked), otherwise assignment take place in the global environment.

--
   O__  ---- Peter Dalgaard             Ă˜ster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalga...@biostat.ku.dk)              FAX: (+45) 35327907

______________________________________________
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.

Reply via email to