Nothing
#' @title Convert matrix population model into U, F and C matrices
#'
#' @description
#' Splits a matrix population model into three constituent matrices, \bold{U}
#' (growth and survival processes), \bold{F} (sexual reproduction) and \bold{C}
#' (clonal reproduction). \strong{Warning!} The functionality is very basic: it
#' assumes that sexual reproduction is located in the top row of the matrix, and
#' that everything else is growth or survival (i.e. the \bold{U} matrix).
#' Clonality is assumed to be non-existent.
#'
#' @param matA A matrix population model (i.e., a square projection matrix).
#'
#' @return A list of three matrices: \code{matU},\code{matF} and \code{matC}.
#' \code{matC} will always contain only zeros.
#'
#' @author Owen R. Jones <jones@@biology.sdu.dk>
#'
#' @family transformation
#'
#' @examples
#' matA <- rbind(
#' c(0.1, 0, 5.3, 4.2),
#' c(0.5, 0.2, 0.1, 0),
#' c(0, 0.3, 0.3, 0.1),
#' c(0, 0, 0.5, 0.6)
#' )
#'
#' mpm_split(matA)
#'
#' @export mpm_split
mpm_split <- function(matA) {
# validate arguments
checkValidMat(matA,
fail_all_na = FALSE, fail_any_na = FALSE,
warn_all_zero = FALSE
)
# matrix dimension
dim <- nrow(matA)
# matU takes everything from matA except first row
matU <- matA
matU[1, ] <- rep(0, dim)
# matF takes first row of matA
matF <- matrix(0, nrow = dim, ncol = dim)
matF[1, ] <- matA[1, ]
# matC is all zeros
matC <- matrix(0, nrow = dim, ncol = dim)
# copy attributes of matA
attributes(matU) <- attributes(matA)
attributes(matF) <- attributes(matA)
attributes(matC) <- attributes(matA)
return(list(matU = matU, matF = matF, matC = matC))
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.