Re: [R] Help with understanding [[]] [] array, list, matrix referencing

From: Joe Byers <joe-byers_at_utulsa.edu>
Date: Tue 24 Oct 2006 - 12:39:18 GMT

Thank you so very much. I can try this on my own examples.

Much appreciated.

Joe

David Barron wrote:
> Well, as I understand it, with a list [] doesn't return the actual
> contents of that element of the list, whereas [[]] does. Compare, for
> example rnds[1] + 1 with rnds[[1]] + 1. So, with a list you have to
> use the double bracket notation to get to the actual contents of that
> element of the list, as opposed to a pointer to the element. With a
> vector or a matrix, [[]] doesn't seem to have much use, though you can
> use it with a single number, in which case you will get the same
> result as [].
>
> There is a separate method for data frames, in which [[]] will give
> you a column. So, I think that data[[1]] is the same as data[,1].
>
> Anyway, these rules have always worked for me, though I'm sure others
> can give a more sophisticated answer!
>
> On 24/10/06, Joe Byers <joe-byers@utulsa.edu> wrote:
>> David,
>>
>> Yes, I did. I just still do not get it. That is why I ask here.
>> Hoping someone knew a step by step guide that I could look at. My trial
>> and error approach takes me hours some days. I currently move most
>> things in and out of data.frames where I can name the columns and
>> reference with the $ and a subsetting function, but that is not always
>> efficient. If I could understand the [ referencing better, my code
>> would be more efficient and I think faster. Part of my problem is my
>> SAS background where everything is a flat table and coding is really
>> sloppy. A data step with a bunch of if-then-else to perform the
>> calculation where as in matrix format like in R you do things more
>> compactly. Not always easy to read but efficient and fast.
>>
>> I appreciate you help.
>>
>> Thank you
>> Joe
>>
>>
>>
>>
>> David Barron wrote:
>> > Have you tried help("["), which gives a good explanation.
>> >
>> >
>> > On 24/10/06, Joe W. Byers <Joe-Byers@utulsa.edu> wrote:
>> >> Hi all,
>> >>
>> >> I would greatly appreciate some help understanding how R references
>> >> arrays, matrices, lists, and objects using [[]] and []. I have
>> read the
>> >> R guides and several tutorials but I am not the fastest kid on the
>> block
>> >> so I am still having difficulty understanding this. For examples the
>> >> following code produces a 5 element list of 2X5 random numbers that I
>> >> then convert to a 2X5X5 matrix.
>> >> cov<-matrix(c(.4,-.1,-.1,.3),nrow=2,ncol=2)
>> >> rnds<-NULL;
>> >> for (i in 1:5){
>> >> t1<-rnorm(5,cov)
>> >> t2<-rnorm(5,cov)
>> >> t3<-rbind(t1,t2)
>> >> rnds[i]<-list(t3)
>> >> }
>> >>
>> >> rnds.matrix<-array(unlist(rnds),dim=c(2,5,5));
>> >>
>> >> To access the matrix rnds.matrix I use rnds.matrix[x,y,z]. This I
>> >> understand.
>> >>
>> >> To access the list I user [[z]][x,y]. This I do not understand. I
>> >> found by chance this reference notation in an old mailing list that
>> >> helped me.
>> >>
>> >> I could use some help in knowing when to use [[]] referencing and
>> when
>> >> to use [] referencing. If there is a really good book, webpage,
>> or link
>> >> with explanation and examples I would appreciate you forwarding
>> the the
>> >> citation.
>> >>
>> >> Thank you
>> >> Joe
>> >>
>> >> ______________________________________________
>> >> R-help@stat.math.ethz.ch 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@stat.math.ethz.ch 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. Received on Wed Oct 25 09:13:35 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Wed 25 Oct 2006 - 00:30:14 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.