Description Usage Arguments Value Author(s) See Also Examples
sm2vec
takes a symmetric matrix and puts
the lower triagonal entries into a vector (cf. lower.tri
).
sm.index
lists the corresponding x-y-indices for each entry
in the vector produced by sm2vec
.
vec2sm
reverses the operation by sm2vec
and converts the
vector back to a symmetric matrix. If diag=FALSE
the
diagonal of the resulting matrix will consist of NAs. If order
is supplied then the input vector vec
will first be rearranged accordingly.
1 2 3 |
m |
symmetric matrix |
diag |
logical. Should the diagonal be included in the conversion to and from a vector? |
vec |
vector of unique elements from a symmetric matrix |
order |
order of the entries in |
A vector (sm2vec
), a two-column matrix with indices (sm.index
),
or a symmetric matrix (vec2sm
).
Korbinian Strimmer (https://strimmerlab.github.io/).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # load corpcor library
library("corpcor")
# a symmetric matrix
m = rbind(
c(3,1,1,0),
c(1,3,0,1),
c(1,0,2,0),
c(0,1,0,2)
)
m
# convert into vector (including the diagonals)
v = sm2vec(m, diag=TRUE)
v.idx = sm.index(m, diag=TRUE)
v
v.idx
# put back to symmetric matrix
vec2sm(v, diag=TRUE)
# convert from vector with specified order of the elements
sv = sort(v)
sv
ov = order(v)
ov
vec2sm(sv, diag=TRUE, order=ov)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.