【发布时间】: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
假设我生成以下矩阵
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。
Sigma <- Sigma * sample(c(1, -1), length(Sigma), replace = TRUE)
diag(Sigma) <- 1
Sigma
【讨论】: