[R] projection.matrix() {popbio} for more than one matrix
Chris Stubben
stubben at lanl.gov
Mon Feb 25 04:29:21 CET 2008
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 at 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.
More information about the R-help
mailing list