Dear David, Thats great, thanks very much for the help, much appreciated.
On 6 Jan 2011, at 15:53, David Winsemius wrote: On Jan 6, 2011, at 6:36 AM, Chris Mcowen wrote: > Dear List, > > I have a data frame called trait with roughly 800 species in, each species > have 15 columns of information: > > Species 1 2 3 etc.. > a t y h > b f j u > c r y u > > etc.. > > > I then have another data frame called com with the composition of species in > each region, there are 506 different communities: > > community species > NA1102 a > NA1102 c > NA0402 b > NA0402 c > AT1302 a > AT1302 b > > etc.. > > > What i want to do is extract the information held in the first data frame for > each community and save this as a new data frame. > tapply(comm.info$species, comm.info$community, c) $AT1302 [1] 1 2 $NA0402 [1] 2 3 $NA1102 [1] 1 3 > lapply( tapply(comm.info$species, comm.info$community, c), function(x){ > sp.info[x, ]} ) $AT1302 Species X1 X2 X3 1 a t y h 2 b f j u $NA0402 Species X1 X2 X3 2 b f j u 3 c r y u $NA1102 Species X1 X2 X3 1 a t y h 3 c r y u Might have looked more compact if I had assigned the output of tapply to an intermediate list: comm.sp <- tapply(comm.info$species, comm.info$community, c) lapply( comm.sp , function(x){ sp.info[x, ]} ) > > Resulting in : - > > community_NA1102 > > a t y h > c r y u > > community_NA0402 > > b f j u > c r y u > > Thanks in advance for any suggestions / code. David Winsemius, MD West Hartford, CT ______________________________________________ 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.