如何提取 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)