首页 > 解决方案 > 如何使每个迭代在 for 循环中都是唯一的

问题描述

我正在尝试使用 R 在多个样本大小上收集 1000 个模拟。最终目标是测试均值、中值和几何均值返回已知答案的能力。首先,我需要从 5、30 和 100 个样本大小的正态分布中编写 1000 个模拟。目前,我的代码打印每次迭代完全相同。例如,在打印 5 个样本的 1000 次迭代的 for 循环中,相同的五个数字被打印 1000 次。我该如何防止这种情况?我希望每次迭代都是唯一的 这是代码,变量的大致轮廓和 for 循环对于每个样本大小都是相同的。

#Sample Size of 5
oneA <- round(rnorm(5, mean = 5, sd = 1))
oneAVec <- c(oneA)
for (i in 1:1000){
  print(oneAVec)
}

标签: rloopsfor-loop

解决方案


您只是打印您已经定义的变量。如果您想在每个循环中都有新的随机数,请在循环内生成它们。

for (i in 1:1000){
  print(round(rnorm(5, mean = 5, sd = 1)))
}

[1] 7 6 7 4 4
[1] 4 4 3 6 4
[1] 5 4 6 5 5
[1] 4 7 3 7 5
[1] 6 4 6 4 5
[1] 4 7 6 4 6
[1] 6 6 3 5 4
[1] 5 4 4 3 5
[1] 6 3 6 6 5
[1] 5 7 4 4 5
[1] 5 5 5 5 5

推荐阅读