dff <- generateData(type="discrete")
discTrans <- makeDiscreteTrans(dff)
makeIPMPmatrix(nBigMatrix = 10, growObj = makeGrowthObj(dff), 
	survObj = makeSurvObj(dff), discreteTrans = discTrans)
	
# Often some data needed for makeDiscreteTrans are not available as 
# individual records in your data file. For instance the fate of seeds 
# in the seedbank of the generateData(type="discrete") example:
dff<-generateData()
# Now the transition matrix needs to be entered as an argument, 
# as well as the mean and sd of sizeNext values for discrete to 
# continuous transitions. 
discTrans <- makeDiscreteTrans(dff,
				discreteTrans = matrix(c(.5,.1,.4,0,1,0),
				nrow=3, ncol=2, 
				dimnames = list(c("seedbank","continuous","dead"),
				c("seedbank","continuous"))),
				meanToCont = matrix(c(mean(dff$sizeNext[is.na(dff$stage)
				    &dff$stageNext=="continuous"],na.rm=TRUE)),
					nrow=1, ncol=1, dimnames = list(1,c("seedbank"))), 
					sdToCont = matrix(c(sd(dff$sizeNext[is.na(dff$stage)
					  &dff$stageNext=="continuous"],na.rm=TRUE)),
					nrow=1, ncol=1, dimnames = list(1,c("seedbank"))))
Pmatrix<-makeIPMPmatrix(nBigMatrix = 10, growObj = makeGrowthObj(dff), 
	survObj = makeSurvObj(dff), discreteTrans = discTrans)
Fmatrix<-makeIPMFmatrix(nBigMatrix = 10, fecObj = makeFecObj(dff))
dim(Pmatrix)
dim(Fmatrix)					
# To fix this mismatch, all discrete classes (1 in this case) need to 
# be added to the Fmatrix as well, e.g.:
Fmatrix<-makeIPMFmatrix(nBigMatrix = 10, fecObj = makeFecObj(dff, 
    offspringSplitter=data.frame(seedbank=.3,continuous=.7)))
IPM <- Pmatrix + Fmatrix	
Run the code above in your browser using DataLab