我正在编写一个R脚本(在Ubuntu 18.04上使用RStudio),在某个时候,我需要随机选择(且不能替换)介于1到1040之间的123个随机数。我使用:
myvector[sample(1:1040,X,replace=F)] = 1
其中“ myvector”是一个1040长的矢量,为0,我需要在X = 123个随机位置中用1替换0。
每次我将这段确切的代码行复制到R控制台并运行它时,它都会按我期望的那样工作,每次迭代都选择123个不同的数字。
然而,奇怪的是,每次我执行包含此代码行的脚本时,它都会选择相同的123个数字。
起初,我认为这可能是由于一些琐碎的对象保存/重命名错误所致,但是即使我添加了
print(sample(1:1040,123,replace=F))
对于脚本,如果总是选择相同的数字集(与上面的代码行选择的数字不同,但每次迭代都相同)。
自从打开计算机以来,我没有在脚本中的任何地方调用过set.seed(),也没有自从打开计算机以来就未调用过set.seed(),所以我不明白为什么它会采用这种方式。
有什么主意吗?
非常感谢您
答案 0 :(得分:0)
如果您已经加载了先前的工作空间,那么该工作空间的种子也将被加载。每次调用this.serviceHelper.getStudentTypes().subscribe(
result => {
this.studentTypes = result.data
.map<SelectItem>(p => ({
label:p.Text,
value:p.Value
}));
}
);
时,都会得到相同的结果。
包括此行
sample
在致电rm(.Random.seed, envir=globalenv())