Интерфейс для set.seed()
действительно задан и принимает только целое число. Это дизайнерское решение, и оно неплохое: set.seed(123)
легко записать, а впоследствии гарантированное поведение гарантировано.
Если вы действительно копаете глубже, в множестве (!!) RNG, используемых R., есть намного больше . Есть разные, вы можете переключаться между ними, и даже по умолчанию вы получаете (насколько я помню) разные для равномерного и нормального розыгрыша. Тем не менее, интерфейс заполнения охватывает оба.
А на уровне C в игре присутствует гораздо более крупная (более сложная) структура данных.
Теперь мой дайджест посылки. Он действительно работает с произвольными объектами R, возвращающими строковые объекты. Таким образом, это не помогает с set.seed()
, так как эти символы не являются целыми числами. Но вы можете, например, установить промежуточный слой, где вы еще раз «отобразите» эти строки символов на целые числа.
Короче говоря, я думаю, вам нужно немного переосмыслить свой дизайн.
Редактировать: По запросу, даже если я думаю, что это не способ сделать это:
R> c2i <- function(s) sum(as.integer(charToRaw(s)))
R> c2i(digest(42))
[1] 2332
R> set.seed(c2i(digest(42)))