如何提取 R 中对称矩阵的上三角形,不包括对角线值全部为 0

问题描述

我觉得这个问题以前应该有人回答过,但我在任何地方都找不到。如何在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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...