Re: [R] projection.matrix() {popbio} for more than one matrix

2008-02-26 Thread Michelle DePrenger-Levin
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. 

 

My code is the following:

 

AsMi05mat <- read.csv("C:/AsMi05mat.csv")

 

library(popbio)

library(base)

 

##for(i in 1995:2005){

  

##AsMitrans.i <- subset(merge(AsMi05mat, AsMi05mat, by = "Tag", sort =
FALSE),

##Year.x == i & Year.y == (i+1) )

##}

 

AsMi05trans <- subset(merge(AsMi05mat, AsMi05mat, by = "Tag", sort = FALSE),

  Year.x == 1995 & Year.y == 1996 )

 

stages <- c("Vegetative", "Reproductive", "Dead", "Dormant")

 

projection.matrix(AsMi05trans, stage=Stage.x, fate=Stage.y,

  sort=stages, TF=TRUE)

 

 

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.


Re: [R] projection.matrix() {popbio} for more than one matrix

2008-02-24 Thread Chris Stubben

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.00.0   1.6667
  vegetative0.50.5   0.
  reproductive  0.00.5   0.6667

$`2002`
  
   seedling vegetative reproductive
  seedling  0.00.0   0.6667
  vegetative0.20.5   0.
  reproductive  0.00.0   0.



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.


Re: [R] projection.matrix() {popbio} for more than one matrix

2008-02-24 Thread Uwe Ligges


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. 

Well, we cannot help to improve your code if we have neither, code nor 
data. Please read the posting guide and specify your code. If something 
is wrong in your code, we might be able to help.

Uwe Ligges




>  
> 
> 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.

__
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.


[R] projection.matrix() {popbio} for more than one matrix

2008-02-22 Thread Michelle DePrenger-Levin
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.