【问题标题】:Set different seed in loop causing warnings in R在循环中设置不同的种子导致 R 中的警告
【发布时间】:2015-04-01 23:25:31
【问题描述】:

在 R 包中,我想从具有不同种子的 Nnorm 分布中提取数字。我已经循环完成了。种子由 310 个观测值的向量的每个值设置。不幸的是,我收到了如下警告:“替换的位置数不是……的倍数”。当我设置常量种子时,它可以工作。

代码:

mojaCharyzma = 2 * (3 + 6 + 4 + 6 + 4 + 8)
seed = dane$id_student

leader = matrix(0,310,1)

for(i in (1:310))
{
  set.seed(seed[i])
  leader[i,1] = rnorm(n = nrow(dane), mean = mojaCharyzma, sd = 7)
}

【问题讨论】:

    标签: r


    【解决方案1】:

    我不确定你想用这个来完成什么。您的矩阵只有一列,所以为什么不这样做

    leader <- matrix(rnorm(n = nrow(dane), mean = mojaCharyzma, sd = 7), ncol=1)
    

    【讨论】:

    • 不断重置随机种子是个坏主意。它可能会破坏您希望的发行版。您每次都重置种子是否有特殊原因?
    • 我需要从 1:310 开始设置。这是锻炼,我必须这样做。
    【解决方案2】:

    问题出在这里:

    n = nrow(dane)
    

    我想 nrow(dane) > 1?例如,如果 nrow(dane) 为 10,则 rnorm() 将返回 10 个值。但是,您希望将所有 10 个值放入名为 leader[i,1]一个 单个矩阵单元格中。那当然不可能。 改成

    n = 1
    

    否则这个矩阵分配将不起作用。

    注意:种子应该对问题没有影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-28
      • 2017-10-13
      • 2023-03-08
      • 2021-01-08
      • 2018-09-30
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多