我有一个类似于:
的相关矩阵
这只是一个例子,我的实际矩阵远大于此。我只想输入矩阵的上三角形或下三角形。问题是我只知道如何输入整个矩阵......
在这个例子中,是否有任何方法可以为下层三角层提供(1,0.31,1,0.32 ......等)来创建一个完整的相关矩阵?
答案 0 :(得分:1)
如果v
是一个向量,给出相关矩阵的下三角部分,包括对角线,那么:
# test data
nms <- c("a", "b", "c")
v <- c(1, .2, .1, 1, .1, 1)
n <- length(nms)
m <- diag(n)
dimnames(m) <- list(nms, nms)
m[lower.tri(m, diag = TRUE)] <- v
m[upper.tri(m)] <- t(m)[upper.tri(m)]
,并提供:
> m
a b c
a 1.0 0.2 0.1
b 0.2 1.0 0.1
c 0.1 0.1 1.0
注意:由于R按列存储矩阵按列提供输入比使用行更常见,但如果v
按行包含较低的三角形,则交换lower.tri
以及upper.tri
。