【问题标题】:How do you generate a random matrix in R with a constant colSum value?如何在 R 中生成具有恒定 colSum 值的随机矩阵?
【发布时间】:2016-09-24 02:34:50
【问题描述】:

我正在寻找一种方法来生成一系列矩阵,其中所有列的总和都等于特定值。 我以为我可以生成随机矩阵并检查每个矩阵以过滤掉 colSums= 值需要的位置,但这似乎不起作用。 另外,我们如何在 R 中生成具有正值和负值的随机矩阵?

【问题讨论】:

  • 第二个问题可以去?runif看看,比如试试runif(your_desired_number, -1, 1)
  • 请举一个这样的矩阵的例子:你的问题太宽泛了。
  • @priya12 您好,如果问题的答案解决了您的问题,您可以点击“接受”以便其他人从中受益吗?谢谢

标签: r matrix random


【解决方案1】:

你可以这样做。这是一个函数,它创建一个填充有来自正态分布的随机数的矩阵。然后它将所有列居中为 0 并将所需的数字相加。

RandomMatrixColsum = function(mycolsum=1, dim=c(10, 10), ...){
  m  <- matrix(rnorm(prod(dim), ...), ncol=dim[2])
  ms <- scale(m, center=T, scale=F) + mycolsum/dim[1]
  return(ms)
}
RandomMatrixColsum(8)

如果您想确保矩阵中同时包含正值和负值,您可以通过在函数调用中添加参数 sd=... 来增加 rnorm 的标准差,或者也强制 sd 为等于平均值​​。

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 2017-03-26
    • 2018-08-11
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多