SAS 中的 CALL RANUNI 函数

问题描述 投票:0回答:1

我想要一个问题的解决方案,我必须在 CALL 例程和 DO 循环中使用统一随机数生成器,并生成 10 个大小为 15 的样本,其中随机变量的值是 10 到 20 之间的数字. 这个 SAS 数据集应该有 150 个观测值。 因为我必须使用 Call Routine,所以我无法获得 10 到 20 之间的变量。使用以下代码后,我生成了 0 到 1 之间的值。

到目前为止我已经做到了-

DATA seven;
SEED=2120;
DO i=1 TO 15;
 CALL RANUNI(SEED, x1);
 CALL RANUNI(SEED, x2);
 CALL RANUNI(SEED, X5);
 CALL RANUNI(SEED, X6);
 CALL RANUNI(SEED, X7);
 CALL RANUNI(SEED, X8);
 CALL RANUNI(SEED, x3);
 CALL RANUNI(SEED, x4);
 CALL RANUNI(SEED, x9);
 CALL RANUNI(SEED, x10);
 OUTPUT;
END;
PROC PRINT DATA=SEVEN NOOBS ;
RUN;
```
sas call
1个回答
0
投票

也许将

CALL STREAMINIT
例程与RAND()函数一起使用

data want;
call streaminit(2120);

do sample=1 to 10;
    do obs=1 to 15;
        rand=rand('uniform', 10, 20);
        output;
    end;
end;

drop obs;
run;
sample    rand
  1    14.767593681
  1    13.535240577
  1    12.954676473
  1    10.660713173
  1    13.894441081
  1    10.843995532
 ...       ...
 10   13.716131395
 10   13.261181149
 10   17.789552165
© www.soinside.com 2019 - 2024. All rights reserved.