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-
> 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
and provide commented, minimal, self-contained, reproducible code.

Reply via email to