Как подавить предупреждение о генерации случайных чисел с помощью future.callr?

Я использую который создает новый поток (?) каждый раз, когда запрашивается будущее, поэтому он рассчитывается отдельно, и основной сценарий R может продолжать работу.

Когда мои фьючерсы вернутся, я получаю следующее предупреждение:

          Warning message:
UNRELIABLE VALUE: Future (‘<none>’) unexpectedly generated random numbers without specifying argument 'seed'. There is a risk that those random numbers are not statistically sound and the overall results might be invalid. To fix this, specify 'seed=TRUE'. This ensures that proper, parallel-safe random numbers are produced via the L'Ecuyer-CMRG method. To disable this check, use 'seed=NULL', or set option 'future.rng.onMisuse' to "ignore".

В реальном коде, который я запускаю, он просто загружает некоторые данные, и я не знаю, почему (или забочусь), что он генерирует случайные числа. Как отключить отображение этого предупреждения (исправив генерацию rng или просто проигнорируя его)?

У меня много строк с фьючерсами, поэтому я надеюсь, что смогу каким-то образом установить параметр в начале и не добавлять его в каждую строку.

Вот пример и моя попытка проигнорировать предупреждение.

      library(future.callr)

set.seed(1234567)
future.seed = TRUE

#normal random number - no problem
a<-runif(1)
print(a)

#random number in future, using callr plan
plan(callr, future.rng.onMisuse = 'ignore')

b %<-% runif(1)
print(b)

1 ответ

Видеть help("%seed%", package = "future").

Вы можете использовать %seed% как показано ниже:

      b %<-% runif(1) %seed% TRUE # seed is set by future pkg
print(b)

# or
b %<-% runif(1) %seed% 1234567 # your seed
print(b)

Или отключить проверку

      options(future.rng.onMisuse = "ignore")
b %<-% runif(1)
print(b)
Другие вопросы по тегам