If you use '<<-' remember that you are going to get into trouble and it will be a challange to debug your script. Only use it if you have a real good understanding of the scoping rules in R and have exhausted all the other avenues.
I, like Greg, am guilty of using it because I still keep some of my old habits (like COMMON in FORTRAN) and every so often do have the need for a "global" variable I can change in a lower level routine without returning a value (and am willing to suffer the consequences of "side effects"). And make sure that you always use the <<- when referring to that object so that you do not create a local copy in some subroutine and really get messed up. So as the answer to "when", I typically says "never". On Wed, Apr 14, 2010 at 11:42 AM, Greg Snow <greg.s...@imail.org> wrote: > The <<- assignment operator is very powerful, but can be dangerous as well. > When tempted to use it, look for alternatives first, there may be a better > way. But having said that, I am one of the more guilty people for using it > (quite a few of the functions in the TeachingDemos package use <<-). > > The main use that I see is when you are using a function written by someone > else that takes one of your functions as an argument and you want to save > information from your function that is not being passed back through the > calling function. For example you may want to trace the calls to your > function that is being called by optim, just define your function A which > defines within it function B which is to be optimized, A also contains an > empty vector to store results in, then A calls optim passing B to it, B uses > <<- to update the vector in A every time that it is called, now A has the > results of optim and also a trace of info on all the calls to B. > > <<- can also be used for package local variables (less evil than globals) > where within a package you can call one function to set some things up, then > other functions in the package can refer to the variable created to see the > setup as well as modifying options local to the package. > > Hope this helps, > > -- > Gregory (Greg) L. Snow Ph.D. > Statistical Data Center > Intermountain Healthcare > greg.s...@imail.org > 801.408.8111 > > > > -----Original Message----- > > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r- > > project.org] On Behalf Of Tal Galili > > Sent: Tuesday, April 13, 2010 8:03 AM > > To: r-help@r-project.org > > Subject: [R] <<- how/when/why do you use it? > > > > Hi all, > > > > Today I came across scoping in the R > > intro<http://cran.r-project.org/doc/manuals/R-intro.html#Scope> (after > > reading Robert Gentleman > > fortune<http://rfortunes.posterous.com/im-always-thrilled-when-people- > > discover-what> > > on > > lexical scooping) , and am very curious about the <<- assignment. > > > > The manual showed one (very interesting) example for "<<-", which I > > feel I > > understood. What I am still missing is the context of when this can be > > useful. > > > > So what I would love to read from you are examples (or links to > > examples) on > > when using "<<-" can be interesting/useful. What might be the dangers > > of > > using it (it looks easy to loose track of), and any tips you might feel > > like > > sharing. > > > > Thanks, > > Tal > > > > > > ----------------Contact > > Details:------------------------------------------------------- > > Contact me: tal.gal...@gmail.com | 972-52-7275845 > > Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) > > | > > www.r-statistics.com (English) > > ----------------------------------------------------------------------- > > ----------------------- > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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-<http://www.r-project.org/posting-> > > guide.html > > and provide commented, minimal, self-contained, reproducible code. > > ______________________________________________ > 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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? [[alternative HTML version deleted]] ______________________________________________ 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.