On Apr 21, 2011, at 2:08 PM, Cliff Clive wrote: > I've been reading some code from an example in a blog post ( > http://www.maxdama.com/ here ) and I came across an operator that I hadn't > seen before. The author used a <<- operator to update a variable, like so: > > ecov_xy <<- ecov_xy+decay*(x[t]*y[t]-ecov_xy) > > At first I thought it was a mistake and tried replacing it with the usual <- > assignment operator, but I didn't get the same results. So what does the > double arrow <<- operator do? >
It is a "super assignment" operator, which means that the assignment is done in the global environment, rather than to a variable that is within a function and therefore may only have local scope. This is covered a bit in "An Introduction To R": http://cran.r-project.org/doc/manuals/R-intro.html#Assignment-within-functions and a bit more in: ?"<-" or ?"<<-" It can be a bit hazardous to use, given the potential confusion over variable scoping issues, which is why <- and <<- may not be interchangeable as you are observing. HTH, Marc Schwartz ______________________________________________ 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.