如果/然后在SAS
问题描述:
声明感谢您花时间帮助我。如果/然后在SAS
基本上,我想生成一个从0到1,150,000次的随机数,如果生成的值低于.25,那么我希望它在该表中的该点显示0。如果它大于.25,我想保持原始值。
关于我应该在asterik部分使用什么技巧?该代码是在我使用的格式粘贴如下:
data rand_data;
call streaminit(123);
do i = 1 to 15000;
u = rand('Uniform');
***if u < .25 then do;
0
else***
output;
end;
run;
proc print data= rand_data;
run;
答
这听起来像你要替换的值小于0.25为0
if u < 0.25 then u=0;
output;
相反,如果你想忽略值是小于0.25,则使OUTPUT语句有条件。
if u >= 0.25 then output;
鉴于您的代码结构,这可能会导致少于15,000个观察值。
+0
非常感谢!我需要的输出仍然显示0.救生员! – indiansrulz
如果你不是统计学家,我会咨询一个关于最终分布的问题,因为我不确定它会非常随机。即使是更新的RAND发行版,当你做这样的事情时,也会失去一些明显的随机性。如果你只是试图获得超过[0.25,1)的分布,那么有更好的方法来做到这一点。 – Joe