【问题标题】:Conditionally replace matrix upper-triangle elements with lower-triangle有条件地用下三角替换矩阵上三角元素
【发布时间】:2015-07-12 18:43:07
【问题描述】:

当下三角形条目等于给定值时,我试图用矩阵的下三角形替换矩阵的上三角形。例如,我有以下矩阵:

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。对此的任何帮助将不胜感激。

【问题讨论】:

  • 试试z+ t(z*(z==1))

标签: r matrix


【解决方案1】:
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 似乎不是基础的一部分。您可能需要指出它们来自哪个包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2014-12-10
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多