【问题标题】:R: Randomly switch signs of the off-diagonals in a matrixR:随机切换矩阵中非对角线的符号
【发布时间】:2021-07-22 13:28:24
【问题描述】:

假设我生成以下矩阵

Sigma <- diag(x = 1, 100, 100)
Sigma[Sigma == 0] <- 0.25

所以对角线有“1”,非对角线有“0.25”。如何随机更改非对角线上的一些符号以具有 -0.25 和 0.25 ?

当然,可以循环遍历元素,但我认为这不是一个优雅的解决方案

【问题讨论】:

    标签: r matrix statistics data-manipulation


    【解决方案1】:

    一种方法是为矩阵的长度随机生成 1 和 -1,将其乘以矩阵并将对角线变为 1。

    Sigma <- Sigma * sample(c(1, -1), length(Sigma), replace = TRUE)
    diag(Sigma) <- 1
    Sigma
    

    【讨论】:

      猜你喜欢
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多