[R] Constructing a transition matrix
Chris Stubben
stubben at lanl.gov
Wed Dec 7 01:43:13 CET 2005
Hi again,
I almost figured this out, but still need some help on the last part.
I can use prop.table to get survival probabilities...
A <- t(prop.table( table(trans$class, trans$fate),1) )
rep seed veg
dead 0.0000000 0.3333333 0.0000000
rep 0.5000000 0.0000000 1.0000000
veg 0.5000000 0.6666667 0.0000000
so now I just need to format the matrix. I thought I could create a
matrix of zeroes using size class names,
dev<- c("seed","veg", "rep").
A0<-matrix(numeric(9), nrow=3, dimnames=list(dev,dev) )
seed veg rep
seed 0 0 0
veg 0 0 0
rep 0 0 0
but how do I assign values in A to the corresponding rows and columns in
A0? I hope there is an easy solution that I'm overlooking.
seed veg rep
seed 0 0 0
veg 0.67 0 0.5
rep 0 1 0.5
Thanks,
Chris
Chris Stubben wrote:
> Hi,
>
> I would like to construct a transition matrix from a data frame with
> annual transitions of marked plants.
>
> plant<-c(1:6)
> class<-c("seed","seed", "seed", "veg", "rep", "rep")
> fate<-c("dead", "veg","veg","rep", "rep", "veg")
>
> trans<-data.frame(plant, class, fate)
>
> plant class fate
> 1 1 seed dead
> 2 2 seed veg
> 3 3 seed veg
> 4 4 veg rep
> 5 5 rep rep
> 6 6 rep veg
>
> I have been using sql queries to do this, but I would like to construct
> the matrix in R since I plan to resample transitions using
> trans[sample(nrow(trans), 6, replace=T), ]
>
> I know I can get the original size vector using table()
>
> data.matrix(table(trans$class))
> [,1]
> rep 2
> seed 3
> veg 1
>
>
> but I don't know how to get counts of each class-fate combination where
> fate does NOT equal dead
>
> seed veg = 2
> veg rep = 1
> rep rep = 1
> rep veg = 1
>
>
> or how to divide the class-fate count by the original class count in the
> size vector to get survival probabilities
>
> seed veg = 2 / 3 seed = 0.67
> veg rep = 1 / 1 veg = 1
> rep rep = 1 / 2 rep = 0.5
> rep veg = 1 / 2 rep = 0.5
>
>
> or construct the square matrix with rows and columns in the same
> developmental sequence like dev<- c("seed","veg", "rep").
>
> seed veg rep
> seed 0 0 0
> veg 0.67 0 0.5
> rep 0 1 0.5
>
> Any help or suggestions would be appreciated.
> Thanks,
>
>
> Chris Stubben
>
>
> --
> Los Alamos National Lab
> BioScience Division
> MS M888
> Los Alamos, NM 87545
>
>
>
More information about the R-help
mailing list