SAS中文论坛
标题:
如何产生随机数0或者1
[打印本页]
作者:
shiyiming
时间:
2004-12-21 22:03
标题:
如何产生随机数0或者1
有一个100行数据的表,如何产生新的一列,这列数据要求是:要么是0,否则为1,而且1的个数必须是30个?能给出一个解题思路吗?
还有,是不是sas中产生的随机数只能是小数?
作者:
shiyiming
时间:
2004-12-22 10:00
标题:
回复
sas可以产生整的随机数,比如用ranbin(0,1,……)可以产生来自0-1分布的随机数,也就是取值为0,1的数,ranbin(0,1,0.3)中的0.3就是用来控制产生1的概率,但这样算出来的1并不一定是30个(28,34,……都有可能)。
data a1;
do i=1 to 100;
x=ranbin(0,1,0.3);
output;
end;
run;
proc freq;
tables x;
run;
我想也许可以产生一列均匀分布的数,排序,取前30个为1,后70个为0,说不定也行。你觉得呢?
作者:
shiyiming
时间:
2004-12-22 10:20
标题:
hoho
data base;
do i=1 to 100;
output;
end;
run;
data new;
set base;
r=normal(0);
n=_n_;
run;
proc sort;
by r;
run;
data new;
set new;
if _n_<=30 then bit=1;
else bit=0;
run;
proc sort;
by n;
run;
proc freq;
table bit;
run;
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2