将R中的矩阵转换为具有相应项的上三角/下三角矩阵
我有一个对称矩阵,我想把它转换成R中的上三角/下三角矩阵。有没有办法将R中的矩阵转换为具有相应项的上三角/下三角矩阵,r,matrix,R,Matrix,我有一个对称矩阵,我想把它转换成R中的上三角/下三角矩阵。有没有办法 我无法使用upper.tri和lower.tri执行此操作。使用这些函数可以得到一个矩阵,其条目为TRUE或FALSE,以获得上三角矩阵: mat <- matrix(1:9, 3, 3) mat[lower.tri(mat)] <- 0 mat虽然前面的答案很完美,但你的朋友是: 矩阵的上下三角部分 描述 返回与给定矩阵大小相同的逻辑矩阵 在下三角形或上三角形中输入TRUE 用法 论据 矩阵 diag 合乎逻
我无法使用
upper.tri
和lower.tri
执行此操作。使用这些函数可以得到一个矩阵,其条目为TRUE
或FALSE
,以获得上三角矩阵:
mat <- matrix(1:9, 3, 3)
mat[lower.tri(mat)] <- 0
mat虽然前面的答案很完美,但你的朋友是:
矩阵的上下三角部分
描述
返回与给定矩阵大小相同的逻辑矩阵
在下三角形或上三角形中输入TRUE
用法
论据
矩阵
diag
合乎逻辑。应该包括对角线吗
另见
例子
(m2一个简单的方法:
lower.triangle(X) #lower triangular
upper.triangle(X) #upper triangular
或:
检查?upper.tri
或?lower.tri
中的示例。它与您的问题(以及下面@ujjwal的答案)非常相似。lower.triangle(X)#lower triangle(未找到函数!)@JStrahl您需要安装matrixcalc包才能使用lower.triangle(X)和uper.triangle(X)。install.packages(“matrixcalc”)然后是库(matrixcalc)
diag
(m2 <- matrix(1:20, 4, 5))
lower.tri(m2)
m2[lower.tri(m2)] <- NA
m2
lower.triangle(X) #lower triangular
upper.triangle(X) #upper triangular
library(Matrix)
tril(X) #lower triangular
triu(X) #upper triangular