R - Могу ли я использовать начальное число, чтобы продолжить генерировать больше чисел, где я остановился? - PullRequest
2 голосов
/ 20 ноября 2019

Предполагая, что я сохранил свое семя, есть ли способ продолжить генерировать значения с того места, где я остановился, или мне нужно сгенерировать все заново?

Например, скажем, я сгенерировал три числа:

> set.seed(1);rnorm(3)
[1] -0.6264538  0.1836433 -0.8356286

Если бы я хотел сгенерировать еще три числа, я мог бы начать заново и сгенерировать шесть чисел,

> set.seed(1);rnorm(6)
[1] -0.6264538  0.1836433 -0.8356286  1.5952808  0.3295078 -0.8204684

но есть ли способ пропустить первые три числа и сгенерировать только следующие три (т. Е. 1.5952808 0.3295078 -0.8204684)?

В других сообщениях упоминалось использование .Random.seed для продолжения, где я остановился, нокогда я сохраняю содержимое .Random.seed до и после запуска, то же самое.

> .Random.seed<-SeedA
> rnorm(3)
[1] -1.2602276  0.4266497  0.3938853
> .Random.seed<-SeedB
> identical(SeedA,SeedB)
[1] TRUE

Так есть ли способ пропустить вперед, что я не понимаю? Спасибо за любые ответы или отзывы

1 Ответ

0 голосов
/ 20 ноября 2019

Интересно, какова причина того, что следующие числа генерируются из одного и того же семени? Представьте, что после розыгрыша 3 чисел вам нужно выполнить какую-то другую операцию, а затем продолжить рисовать случайные числа. Если вы хотите иметь эту реплицируемую информацию, не можете ли вы установить начальное число перед тем, как нарисовать для каждого набора случайных чисел какое-то детерминированное значение? Например,

set.seed(1)
rnorm(3)

# Do some other stuff

set.seed(2)
rnorm(3)

(очевидно, что вы можете идти так долго, как хотите - вы можете инициализировать некоторый вектор чисел, а затем индексировать его для установки начального числа для произвольного числа партий)

Теперь, хотя второй набор из 3 случайных переменных не будет таким же, как если бы вы нарисовали 6 чисел с начальным числом 1, но если репликация - это все, что имеет значение, то вы можете запустить вышеприведенное и всегда получатьодни и те же случайные числа. Итак, важно ли, чтобы пакеты случайных чисел генерировались с одним и тем же начальным числом?

...