vechMat: Vectorization and Expansion of Symmetric Matrices

Description Usage Arguments Value Author(s) See Also Examples

View source: R/vechMat.R

Description

The function vechMat transforms a symmetric matrix in a vector containing its lower triangular elements, taken by column. The function xpndMat reverses this transformation.

Usage

1
2
3
vechMat(mat, diag=TRUE)

xpndMat(vech)

Arguments

mat

a square matrix.

vech

a vector.

diag

a logical switch indicating if the diagonal entries must be included.

Value

A vector for vechMat, a symmetric matrix for xnpdMat.

Author(s)

Antonio Gasparrini <antonio.gasparrini@lshtm.ac.uk>

See Also

See functions vech and xpnd in package MCMCpack.

Examples

1
2
3
4
5
6
7
8
9
# GENERATE A POSITIVE-DEFINITE MATRIX, VECTORIZE IT AND THEN RE-EXPAND
(M <- crossprod(matrix(rnorm(9),3)))
(v <- vechMat(M))
xpndMat(v)

# EXTRACT VECTORIZED S, EXPAND TO A LIST, AND RE-VECTORIZE
(S <- as.matrix(berkey98[5:7]))
(Slist <- lapply(seq(nrow(S)), function(i) xpndMat(S[i,])))
t(sapply(Slist,vechMat))

mixmeta documentation built on Oct. 16, 2021, 5:09 p.m.