as_array3: Convert between 2D tabular objects and 3D arrays

View source: R/tpmatrix.R

as_array3R Documentation

Convert between 2D tabular objects and 3D arrays

Description

Convert a 2-dimensional tabular object where each row stores a flattened square matrix to a 3-dimensional array of square matrices and vice versa. This allows multiple transition matrices to be stored as either tabular objects (e.g., matrices, data frames, etc) or as arrays.

Usage

as_array3(x)

as_tbl2(
  x,
  output = c("data.table", "data.frame", "matrix", "tpmatrix"),
  prefix = "",
  sep = "_"
)

Arguments

x

For as_array3() a 2-dimensional tabular object where each row stores a flattened square matrix ordered rowwise. Reasonable classes are matrix, data.frame, data.table, and tpmatrix. For as_tbl2() a 3-dimensional array where each slice is a square matrix.

output

The class of the object returned by the function. Either a data.table, data.frame, matrix, or tpmatrix.

prefix, sep

Arguments passed to tpmatrix_names() for naming the transition probability columns. The states argument is based on the column names (i.e., names of the second dimension) of array; if NULL, then states are named s1, ..., sh where h is the number of states.

Value

For as_array3() a 3-dimensional array of square matrices; for as_tbl2() a 2-dimensional tabular object as specified by output.

See Also

tpmatrix

Examples

p_12 <- c(.7, .6)
pmat <- tpmatrix(
 C, p_12,
 0, 1
)
pmat

as_array3(pmat)
as_array3(as.matrix(pmat))
as_tbl2(as_array3(pmat))
as_tbl2(as_array3(pmat), prefix = "p_", sep = ".")

InnovationValueInitiative/hesim documentation built on Feb. 12, 2024, 10:39 p.m.