# Builds a compound F matrix.

### Description

Uses fecundity object, and environmental transition objects to construct a matrix defining probabilities for transitions between sizes due to fecundity given both a continuous state (e.g. size) and environmental state, as well as a discrete stage if necessary (e.g. seedbank). NOTE - old createCompoundFmatrix is being deprecated; use makeCompoundFmatrix instead.

### Usage

1 2 3 4 | ```
makeCompoundFmatrix(nEnvClass = 2, nBigMatrix = 50,
minSize = -1, maxSize = 50, envMatrix, fecObj, integrateType="midpoint",
correction="none",
preCensus = TRUE, survObj = NULL, growObj = NULL, offspringObj=NULL)
``` |

### Arguments

`nEnvClass` |
numeric, number of environmental classes, defaults to 2. |

`nBigMatrix` |
numeric, number of size bins in the P matrix, defaults to 50. |

`minSize` |
numeric, minimum size of the P matrix, defaults to -1. |

`maxSize` |
numeric, maximum size of the P matrix, defaults to 50. |

`envMatrix` |
envMatrix object defining transitions between environmental states for each size. |

`fecObj` |
fecundity object. |

`integrateType` |
integration type, defaults to "midpoint" (which uses probability density function); other option is "cumul" (which uses the cumulative density function). |

`correction` |
correction type, defaults to |

`preCensus` |
logical (TRUE or FALSE), indicating whether the fecundity object should represent an interval between pre-breeding or a post-breeding censusses. defaults to TRUE (pre-breeding census), meaning that all reproduction and offspring rates required for the F matrix are embedded in fecObj. Alternatively, an F matrix based on post-breeding census (preCensus=FALSE) requires additional survObj and growObj, to cover the survival and growth of the parents until the reproduction event. |

`survObj` |
suvival object, describing the survival of parents from a census until the reproduction event starts (at some point during the inter-census time step. |

`growObj` |
growth object, describing the growth of parents that survive until the reproduction event starts. Warning: this growth object is still ignored in makeIPMFmatrix in the current version of IPMpack. It will become functional in coming versions. |

`offspringObj` |
growth object, describing the size of offspring (this process may alternatively appear in fecObj). |

### Value

an object of class IPMmatrix with dimensions nBigMatrix*nEnvClass, or if discrete transitions exist (nBigMatrix+nDisc)*nEnvClass

### Author(s)

C. Jessica E. Metcalf, Sean M. McMahon, Roberto Salguero-Gomez, Eelke Jongejans & Cory Merow.

### References

For information on F matrix: Caswell. 2001. Matrix population models: construction, analysis, and interpretation. 2nd ed. Sinauer. p110-112.

For midpoint: Zuidema, Jongejans, Chien, During & Schieving. Integral projection models for trees: a new parameterization method and a validation of model output. Journal of Ecology 98, p345-355.

For multiple-vital rate integration on fecundity: Yang, Jongejans, Yang & Bishop. 2011. The effect of consumers and mutualists of Vaccinum membranaceum at Mount St. Helens: dependence on successional context. PLoS One 10, p1-11.

### See Also

`makeCompoundPmatrix`

,`makeIPMFmatrix`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | ```
# Data with only continuous stage and two habitats
dff <- generateData()
dff$fec[dff$fec==0] <- NA
Fmatrix <-makeCompoundFmatrix(nBigMatrix = 20,
minSize = min(dff$size, na.rm = TRUE),
maxSize = max(dff$size, na.rm=TRUE),
envMatrix = makeEnvObj(dff),
fecObj = makeFecObj(dff, Formula = fec~size+size2+covariate,
Transform = "log"))
image(1:nrow(Fmatrix), 1:ncol(Fmatrix), t(log(Fmatrix)),
xlab="Continuous state (e.g. size) at t",
ylab="Continuous state (e.g. size) at t+1", axes = FALSE)
axis(1, at = 1:nrow(Fmatrix), lab = round(rep(Fmatrix@meshpoints,
Fmatrix@nEnvClass), 2))
axis(2,at = 1:nrow(Fmatrix), lab = round(rep(Fmatrix@meshpoints,
Fmatrix@nEnvClass), 2))
abline(h = length(Fmatrix@meshpoints)*(1:Fmatrix@nEnvClass))
abline(v = length(Fmatrix@meshpoints)*(1:Fmatrix@nEnvClass))
# Data with continuous and discrete stages
dff <- generateData(type="discrete")
dff$fec[dff$fec==0] <- NA
dff$covariate <- sample(1:3, size = nrow(dff), replace = TRUE)
dff$covariateNext <- sample(1:3, size = nrow(dff), replace = TRUE)
fv1 <- makeFecObj(dff, Formula = fec~size, Transform = "log",
offspringSplitter=data.frame(continuous = 0.9, dormant = 0.1))
Fmatrix <- makeCompoundFmatrix(minSize = min(dff$size, na.rm=TRUE),
maxSize = max(dff$size, na.rm = TRUE), envMatrix = makeEnvObj(dff),
fecObj = fv1)
``` |

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker. Vote for new features on Trello.