你如何使变量在R中改变它的值? (`sample`命令)

时间:2017-12-27 11:39:46

标签: r variables sample

这可能是一个非常基本的问题,但是如何使变量在R中更改其值如下?

var <- sample(c(-2, -1, 0, 1, 2), size = 1)一遍又一遍地给出相同的数字。我该怎么做才能防止这种情况发生?

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,当需要时。因此不同的会议   默认情况下会给出不同的模拟结果。然而,种子   如果以前保存过,可能会从之前的会话中恢复   工作区已恢复。