Michelle, I would probably run a loop as well and save all matrices to a single list (see hudsonia and calathea on working with lists of matrices).
First, run the example(test.census) to get the stage-fate data frame "trans" and then run this code to save the matrices into a list "all". years<-2001:2002 #or unique(trans$year) all<-vector("list", length(years) ) names(all)<-years ## loop through years for (s.year in years) { ## Add individual fertilities test.trans <- subset(trans, year==s.year) seedlings<-nrow(subset(test.census, year==s.year+1 & stage=="seedling")) test.trans$seedling<-test.trans$fruits/sum(test.trans$fruits) * seedlings ## save test.trans to another list if needed for bootstrapping, calculating pooled matrix etc. ## test.trans ## either one will work to get list index all[[as.character(s.year)]] <-projection.matrix(test.trans) ##all[[ s.year- (years[1]-1) ]] <-projection.matrix(test.trans) } all $`2001` seedling vegetative reproductive seedling 0.0 0.0 1.6667 vegetative 0.5 0.5 0.0000 reproductive 0.0 0.5 0.6667 $`2002` seedling vegetative reproductive seedling 0.0 0.0 0.6667 vegetative 0.2 0.5 0.3333 reproductive 0.0 0.0 0.0000 There's also a loop in the demo(fillmore) example that uses the aq.census data to create matrices for seven years. Chris Michelle DePrenger-Levin wrote: > > Hello, > > > > I am trying to use the projection.matrix( ) function and am following the > example given. I have my data formatted very similar to the test.census > example. > > > >> str(AsMi05mat) > > `data.frame': 1854 obs. of 6 variables: > > $ Tag : num 501 502 503 504 505 506 507 508 509 510 ... > > $ Year : int 1995 1995 1995 1995 1995 1995 1995 1995 1995 1995 ... > > $ Length : num 34 37 11 24 7 44 4 7 12 20 ... > > $ Flowering: int 1 1 0 1 0 1 0 0 0 1 ... > > $ Fruits : int 22 22 0 89 0 15 0 0 0 0 ... > > $ Stage : Factor w/ 5 levels "","Dead","Dormant",..: 4 4 5 4 5 4 5 5 5 > 4 > ... > > > > The example data includes three years but only shows how to create a > matrix > from year 1 to 2. I have 13 years of data and would like to automate > creating > all matrices for each pair of years. > > > > I tried a for( ) loop but don't know how to assign new names for each > matrix > so end up with only the final comparison (2005 to 2006). I assume an > apply( ) > function is the way to go but can't see how to do it. > > > > Thanks for any help! > > > > Michelle > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > > -- View this message in context: http://www.nabble.com/projection.matrix%28%29-%7Bpopbio%7D-for-more-than-one-matrix-tp15646115p15673408.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.