Похоже, что SAS/IML имеет возможность сбросить свой поток случайных чисел (ссылка на документ) .
Есть ли аналогичная функция для процедур случайных чисел на этапе данных SAS?
На основе этот пост кажется, что последующие вызовы streaminit
игнорируются в рамках одного шага данных.
Например, приведенный ниже код создает разные случайные числа для каждой строки:
data want;
do i = 1 to 2;
call streaminit(123); * <-- WANT THIS TO RESET THE STREAM;
ran1 = rand('uniform');
ran2 = rand('uniform');
ran3 = rand('uniform');
put _all_;
output;
end;
run;
Выход:
i=1 ran1=0.5817000773 ran2=0.0356216603 ran3=0.0781806207
i=2 ran1=0.3878454913 ran2=0.3291709244 ran3=0.3615948586
Я хотел бы, чтобы вывод был:
i=1 ran1=0.5817000773 ran2=0.0356216603 ran3=0.0781806207
i=2 ran1=0.5817000773 ran2=0.0356216603 ran3=0.0781806207