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

John Kane jrkrideau at yahoo.ca
Tue Oct 24 15:43:54 CEST 2006


--- Joe Byers <joe-byers at 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
> 
I'm with you Joe.  However you might want to have a
look at chapter 2 of An Introduction to S and The
Hmisc and Design Libraries
Carlos Alzola & Harrell  availabe in the contributed
material on the CRAN site.
> 
> David Barron wrote:
> > Have you tried help("["), which gives a good
> explanation.
> >
> >
> > On 24/10/06, Joe W. Byers <Joe-Byers at 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 at 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 at 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.
>



More information about the R-help mailing list