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.
as_array3(x)
as_tbl2(
x,
output = c("data.table", "data.frame", "matrix", "tpmatrix"),
prefix = "",
sep = "_"
)
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.
The class of the object returned by the function. Either
a data.table
, data.frame
, matrix
, or tpmatrix
.
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.
For as_array3()
a 3-dimensional array of square matrices;
for as_tbl2()
a 2-dimensional tabular object as specified by output
.
p_12 <- c(.7, .6)
pmat <- tpmatrix(
C, p_12,
0, 1
)
pmat
#> s1_s1 s1_s2 s2_s1 s2_s2
#> <num> <num> <num> <num>
#> 1: 0.3 0.7 0 1
#> 2: 0.4 0.6 0 1
as_array3(pmat)
#> , , 1
#>
#> s1 s2
#> s1 0.3 0.7
#> s2 0.0 1.0
#>
#> , , 2
#>
#> s1 s2
#> s1 0.4 0.6
#> s2 0.0 1.0
#>
as_array3(as.matrix(pmat))
#> , , 1
#>
#> [,1] [,2]
#> [1,] 0.3 0.7
#> [2,] 0.0 1.0
#>
#> , , 2
#>
#> [,1] [,2]
#> [1,] 0.4 0.6
#> [2,] 0.0 1.0
#>
as_tbl2(as_array3(pmat))
#> s1_s1 s1_s2 s2_s1 s2_s2
#> <num> <num> <num> <num>
#> 1: 0.3 0.7 0 1
#> 2: 0.4 0.6 0 1
as_tbl2(as_array3(pmat), prefix = "p_", sep = ".")
#> p_s1.s1 p_s1.s2 p_s2.s1 p_s2.s2
#> <num> <num> <num> <num>
#> 1: 0.3 0.7 0 1
#> 2: 0.4 0.6 0 1