采样下的变量如何改变其在 R 中的值?

How can a variable under sampling change its value in R?

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

假设我想从集合 {-2, -1, 0, 1, 2} 中对一个值进行五次采样。

我先让var <- sample(c(-2, -1, 0, 1, 2), size = 1)定义样本,然后在控制台输入var五次

然而,var 总是一遍又一遍地给出相同的数字。我可以做些什么来防止这种情况发生?

注意:由于此问题的上下文,更改 size = 5 不起作用。

如果您这样做,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:

Initially, there is no seed; a new one is created from the current time and the process ID when one is required. Hence different sessions will give different simulation results, by default. However, the seed might be restored from a previous session if a previously saved workspace is restored.