View source: R/blockwiseModulesC.R
lowerTri2matrix | R Documentation |
Assuming the input vector contains a vectorized form of the distance representation of a symmetric matrix, this function creates the corresponding matrix. This is useful when re-forming symmetric matrices that have been vectorized to save storage space.
lowerTri2matrix(x, diag = 1)
x |
a numeric vector |
diag |
value to be put on the diagonal. Recycled if necessary. |
The function assumes that x
contains the vectorized form of the distance representation of a
symmetric matrix. In particular, x
must have a length that can be expressed as n*(n-1)/2, with n an
integer. The result of the function is then an n times n matrix.
A symmetric matrix whose lower triangle is given by x
.
Peter Langfelder
# Create a symmetric matrix
m = matrix(c(1:16), 4,4)
mat = (m + t(m));
diag(mat) = 0;
# Print the matrix
mat
# Take the lower triangle and vectorize it (in two ways)
x1 = mat[lower.tri(mat)]
x2 = as.vector(as.dist(mat))
all.equal(x1, x2) # The vectors are equal
# Turn the vectors back into matrices
new.mat = lowerTri2matrix(x1, diag = 0);
# Did we get back the same matrix?
all.equal(mat, new.mat)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.