当下三角形条目等于给定值时,我试图用矩阵的下三角形替换矩阵的上三角形。例如,我有以下矩阵:
0 0 0
1 0 0
2 1 0
我需要将所有等于1的下三角形条目复制到上三角形。结果应该是:
0 1 0
1 0 1
2 1 0
我尝试使用:
library(gdata)
z <- matrix(c(0,1,2,0,0,1,0,0,0),nrow=3,ncol=3)
upperTriangle(z) <- t(lowerTriangle(z)[lowerTriangle(z)==1])
但这会将整个上三角形替换为1.对此有任何帮助将非常感激。
答案 0 :(得分:4)
z <- matrix(c(0,1,2,0,0,1,0,0,0),nrow=3,ncol=3)
z[upper.tri(z) & t(z) == 1] = 1
适合我。
注意:你的upperTriangel和lowerTriangle似乎不是基础的一部分。您可能想要指出它们来自哪个包。