Loops 在SAS中创建具有随机值的数据集

Loops 在SAS中创建具有随机值的数据集,loops,random,sas,dataset,Loops,Random,Sas,Dataset,我想创建一个随机数据集。像这样的- ptno visits sex race 1 1 1 0 1 2 1 0 1 3 1 0 2 1 2 1 2 2 2 1 2 3 2 1 3 1 1 0 3 2 1 0 3 3 1 0 这些值应该随机生成。我想知道我是否可以使用do循环动态地执行此操作。提前感

我想创建一个随机数据集。像这样的-

ptno visits sex race
1       1    1   0
1       2    1   0
1       3    1   0

2       1    2   1
2       2    2   1
2       3    2   1

3       1    1   0
3       2    1   0
3       3    1   0
这些值应该随机生成。我想知道我是否可以使用do循环动态地执行此操作。提前感谢您的帮助。

SAS call ranuni()从均匀分布生成随机变量,如果值大于0.5,则为1,否则为0。在这里,相同的ptno(i)+种子获得相同的性别或种族

data want ; 
  length ptno visits sex race 8. ;
  do ptno = 1 to 100 ;
    _visits = ceil(ranuni(0)*5)  ; /* between 1 & 5 */
    sex     = ceil(ranuni(0)*2)  ; /* between 1 & 2 */
    race    = floor(ranuni(0)*2) ; /* between 0 & 1 */
    do visits = 1 to _visits ;
      output ;
    end ;
  end ;
  drop _visits ;
run ;
data want;
  do i=100 to 110;
     do j=1 to 5;
        seed1=i+4567;
        call ranuni(seed1,x);
        seed2=i+1234;
        call ranuni(seed2,y);
        ptno=i;
        visit=j;
        sex=(x>0.5)+1;
        race=(y<0.5);
        output;
     end;
  end;
  keep ptno--race;
run;
需要数据;
i=100至110;
do j=1到5;
种子1=i+4567;
打电话给拉努尼(种子1,x);
种子2=i+1234;
打电话给拉努尼(西德2,y);
ptno=i;
访问=j;
性别=(x>0.5)+1;

比赛=(事实上,这并不是我想要的。例如,我有101-110的ptno。对于每个ptno,应该有5次访问,并且应该相应地创建性别和种族。这意味着应该有50次观察。@Noob_编码员请在你的原始帖子中提供这些信息,而不是在评论中。这个答案与你发布的问题相匹配。@Noob_编码器,调整上述参数以满足您的需求是很简单的。