代码之家  ›  专栏  ›  技术社区  ›  user8818397

采样下的变量如何改变其R值?[已关闭]

  •  1
  • user8818397  · 技术社区  · 7 年前

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

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

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

    然而 风险值 不断重复给出相同的数字。我能做些什么来防止这种情况?

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

    1 回复  |  直到 5 年前
        1
  •  1
  •   PKumar    7 年前

    如果你这样做, set.seed(NULL) 然后重新运行代码,每次都会收到不同的值。但是,如果您执行以下操作 set.seed(1729) , set.seed(42) 等等,你会再次得到相同的号码。

    在我的系统中,正在运行 设置种子(空) 结果如下:

    > 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
    

    如果我尝试 设置种子(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(如果需要)。因此会有不同的会议 默认情况下,将给出不同的模拟结果。然而,种子 如果以前保存了会话,则可能会从以前的会话中恢复 工作区已还原。