On Mon, Jul 18, 2011 at 7:16 PM, Nipesh Bajaj <bajaj141...@gmail.com> wrote: > Hi all, I am trying to understand the R's "environment" concept > however the underlying help files look quite technical to me. Can > experts here provide me some more intuitive ideas behind this concept > like, why it is there, what exactly it is doing in R's architecture > etc.? > > I mainly need some non-technical intuitive explanation.
You can think of it as a box into which you can put (using "assign") and get (using "get") things. > e=new.env() > assign("foo",99,env=e) > get("foo",env=e) [1] 99 Now, the interesting thing is that when you copy an environment, you dont make a new copy of everything in it: > z=e > get("foo",env=z) [1] 99 Now if I change 'foo' in z, as if by magic it changes in e as well: > assign("foo","Set in z",env=z) > get("foo",env=e) [1] "Set in z" Because e and z are the same environment: > z <environment: 0x8869bec> > e <environment: 0x8869bec> This gives you a way of doing pass-by-reference in R, but you won't be doing it that way soon because R version something has proper reference classes. That's probably all you need to know to get you started. Barry ______________________________________________ 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.