如何提取R中对称矩阵的上三角,不包括对角线值(所有0)

如何提取R中对称矩阵的上三角,不包括对角线值(所有0),r,extract,triangular,R,Extract,Triangular,我觉得这个问题以前就应该得到回答,但我在任何地方都找不到。如何提取R中对称矩阵的上三角形?我想计算这样一个矩阵的平均值,但对角线上没有0,因为它们会给我的结果着色。 我有以下代码: library(Matrix) matrix <- as.matrix(distObject) m[lower.tri(m)] <- 0 triu(m) 但是,我需要的是: V3 V4 V5 V6 V7 V3 0.4946237

我觉得这个问题以前就应该得到回答,但我在任何地方都找不到。如何提取R中对称矩阵的上三角形?我想计算这样一个矩阵的平均值,但对角线上没有0,因为它们会给我的结果着色。 我有以下代码:

library(Matrix)
matrix <- as.matrix(distObject)
m[lower.tri(m)] <- 0
triu(m)
但是,我需要的是:

          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)
库(矩阵)

m多亏@user20650,我发现这段代码完全符合我的要求:

library(Matrix)
m <- as.matrix(distObject)
m[lower.tri(m)] <- 0
m <- m[-nrow(m),-1]
triu(m)
库(矩阵)

lower.tri
call之后加上
m哇,真是太棒了!非常感谢。重新阅读您的问题,如果您“想要计算这样一个矩阵的平均值,但对角线中没有0”是
mean(m[upper.tri(m,diag=FALSE)])
足够了(这与
mean(distObject)相同)
?也就是说,在
下.tri
调用后没有稀疏矩阵填充,可能会添加
m哇,这工作得很好!谢谢!如果你“想计算这样一个矩阵的平均值,但对角线中没有0”,重新阅读你的问题是
平均值(m[upper.tri(m,diag=FALSE)]
足够了(这与
平均值相同)(distObject)
?即没有稀疏矩阵