如何提取 R 中对称矩阵的上三角,不包括对角线值(全为 0)
How can I extract the upper triangle of a symmetrical matrix in R, excluding the diagonal values (all the 0s)
我觉得这个问题以前应该有答案,但我找不到任何地方。如何提取 R 中对称矩阵的上三角?我想计算这样一个矩阵的平均值,但对角线中没有 0,因为它们会影响我的结果。
我有这个代码:
library(Matrix)
matrix <- as.matrix(distObject)
m[lower.tri(m)] <- 0
triu(m)
目前这让我:
V2 V3 V4 V5 V6 V7
V2 0.0000000 0.4946237 0.6834532 0.6653992 0.6881029 0.6438849
V3 . 0.0000000 0.7183673 0.6531532 0.6959707 0.6458333
V4 . . 0.0000000 0.4024896 0.6845238 0.7075472
V5 . . . 0.0000000 0.6901840 0.6843854
V6 . . . 0.0000000 0.3821429
V7 . . . . . 0.0000000
但是,我需要这样的东西:
V3 V4 V5 V6 V7
V3 0.4946237 0.6834532 0.6653992 0.6881029 0.6438849
V4 . 0.7183673 0.6531532 0.6959707 0.6458333
V5 . . 0.4024896 0.6845238 0.7075472
V6 . . . 0.6901840 0.6843854
V7 . . . 0.3821429
如果有人能够提供帮助,那就太好了!
感谢@user20650,我发现这段代码完全符合我的要求:
library(Matrix)
m <- as.matrix(distObject)
m[lower.tri(m)] <- 0
m <- m[-nrow(m),-1]
triu(m)
我觉得这个问题以前应该有答案,但我找不到任何地方。如何提取 R 中对称矩阵的上三角?我想计算这样一个矩阵的平均值,但对角线中没有 0,因为它们会影响我的结果。 我有这个代码:
library(Matrix)
matrix <- as.matrix(distObject)
m[lower.tri(m)] <- 0
triu(m)
目前这让我:
V2 V3 V4 V5 V6 V7
V2 0.0000000 0.4946237 0.6834532 0.6653992 0.6881029 0.6438849
V3 . 0.0000000 0.7183673 0.6531532 0.6959707 0.6458333
V4 . . 0.0000000 0.4024896 0.6845238 0.7075472
V5 . . . 0.0000000 0.6901840 0.6843854
V6 . . . 0.0000000 0.3821429
V7 . . . . . 0.0000000
但是,我需要这样的东西:
V3 V4 V5 V6 V7
V3 0.4946237 0.6834532 0.6653992 0.6881029 0.6438849
V4 . 0.7183673 0.6531532 0.6959707 0.6458333
V5 . . 0.4024896 0.6845238 0.7075472
V6 . . . 0.6901840 0.6843854
V7 . . . 0.3821429
如果有人能够提供帮助,那就太好了!
感谢@user20650,我发现这段代码完全符合我的要求:
library(Matrix)
m <- as.matrix(distObject)
m[lower.tri(m)] <- 0
m <- m[-nrow(m),-1]
triu(m)