Constructing a transition matrix
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