如何替换矩阵的下/上三角形元素?

use*_*895 2 r

我的问题:

Amat <- diag(4)
Run Code Online (Sandbox Code Playgroud)

我想,以取代所有的下三角值Amat(即Amat[2,1],Amat[3,1],Amat[3,2],等),用一个值我选择(例如NA).

显然我不想逐个替换每个元素.

你能用一个命令告诉我最有效的方法吗?

A5C*_*2T1 8

这在文档中有很好的记录upper.tri.

Amat[upper.tri(Amat)] <- NA
Amat
#      [,1] [,2] [,3] [,4]
# [1,]    1   NA   NA   NA
# [2,]    0    1   NA   NA
# [3,]    0    0    1   NA
# [4,]    0    0    0    1
Run Code Online (Sandbox Code Playgroud)

当然,Amat[lower.tri(Amat)] <- NA将下三角形转换为NAs也是如此.


pto*_*uin 5

lower.triupper.tri你在找什么呢?

这些函数在 R 基础中。