如果要生成50个可重现的样本,应该以第一方式还是第二方式使用set.seed函数?
set.seed(1000)
for(i in 1:50)
sample(x,10)
或
for(i in 1:50)
set.seed(1000)
sample(x,10)
答案 0 :(得分:0)
第一种方式
第一个为循环中使用的一串伪随机数设置起点。
第二种方法在循环的每次运行中设置相同的起点,并将给出相同的数字,从而得出相同的结果1:50倍。
say set.seed(1000)给出一组随机数(1,2,3,4,5 ...,50)
然后在第一个示例中,您将获得一个对应于1,2,3 ....,50
的样本。但是在第二个示例中,您将获得一个对应于1,1,1 ....,1
的样本答案 1 :(得分:0)
如果您同时运行所有行,则第一种方法将起作用。如果您第二次运行循环而没有将种子重置为1000,或者在设置种子和采样之间还有另一个随机事件,那么您将获得不同的答案。
第二种方法不起作用,因为它将返回相同的样本集50次。
对于可重现的样本,我将以这种方式进行(我将样本数设置为x,等于10)
x=10
for(i in 1:50){
set.seed(i)
print(sample(x,10))
}
这将为您提供50个不同的样本集,这些样本集在您下次运行代码时也将完全相同