这可能是一个非常基本的问题,但是如何使变量在R中更改其值如下?
var <- sample(c(-2, -1, 0, 1, 2), size = 1)
一遍又一遍地给出相同的数字。我该怎么做才能防止这种情况发生?
答案 0 :(得分:2)
如果您这样做,set.seed(NULL)
并重新运行您的代码,您每次都会收到不同的值。但是,如果您执行set.seed(1729)
,set.seed(42)
等操作,您将再次获得相同的号码。
在我的系统中,运行set.seed(NULL)
结果如下:
> set.seed(NULL)
> var <- sample(c(-2, -1, 0, 1, 2), size = 1)
> var
[1] -2
> var <- sample(c(-2, -1, 0, 1, 2), size = 1)
> var
[1] 1
如果我尝试set.seed(1729)
并重新运行代码,我会收到:
> set.seed(1729)
> var <- sample(c(-2, -1, 0, 1, 2), size = 1)
> var
[1] 0
> var <- sample(c(-2, -1, 0, 1, 2), size = 1)
> var
[1] 0
我们选择的种子数是生成随机数序列的起点,这就是为什么我们在相同的种子数下得到相同的结果。
请参阅文档 ?set.seed
:
最初,没有种子;从当前创建一个新的 时间和进程ID,当需要时。因此不同的会议 默认情况下会给出不同的模拟结果。然而,种子 如果以前保存过,可能会从之前的会话中恢复 工作区已恢复。