On Fri, Dec 11, 2009 at 11:51 AM, Steve Lianoglou <mailinglist.honey...@gmail.com> wrote: > > On Dec 11, 2009, at 12:36 PM, Peng Yu wrote: > [snip] > >>>> What seems confusing to me is: >>>> even 'x[i]<-list(NULL)' and 'x[[i]]<-list(NULL)' are different, why >>>> x[i]<-NULL and x[[i]]<-NULL are the same? >>>> >>>> Shouldn't the meaning of 'x[[i]]<-NULL' be defined as the set the i'th >>>> element NULL, rather than deleting the i'th element? >> >> Do you have any comments on the above question? > > Sure. > > I think it has something to do with how memory is managed and allocated in R. > You might try to read up on it a bit ...
Which question do you refer by the first 'it'? I have been asking a good reference on memory management in R. So far, no one have given me any useful information. Do you have a good reference? > In all seriousness tho: > > No, I don't really have any comment on that question. > > The semantics of what "x[i]<-list(NULL)" vs "x[[i]]<-list(NULL)" seems quite > reasonable to me ... I'm not sure what that has to do with anything. > > I also can't comment on why x[[i]] <- NULL deletes the element (instead of > setting it to NULL, like you want it to) .. it's just the way it is. The design choice of x[[i]] <- NULL deleting the element instead of setting it to NULL might increase the complexity of the code. Suppose that I set the i'th element of x by calling some_function(), which never return NULL, the following code is perfectly fine. x[[i]] <- some_function() However, when some_function() does return NULL, the i'th element will be deleted. In this case I have to do the following. I will have to use the following code, when I don't know if some_function() can return NULL, for the sake of safety. As you can see one line of code has been expanded to 6 lines. result=some_function() if(NULL==result) { x[i] <- list(NULL) } else { x[[i]] <- some_function() } For this reason, x[[i]]<-NULL should be defined as setting it to NULL. > That having been said. Once you "get it" (and I guess it's on the FAQ for a > reason), then you can figure out how to deal with it. > > -steve > > -- > Steve Lianoglou > Graduate Student: Computational Systems Biology > | Memorial Sloan-Kettering Cancer Center > | Weill Medical College of Cornell University > Contact Info: http://cbio.mskcc.org/~lianos/contact > > ______________________________________________ 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.