全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1194 4
2010-08-12
下面这段code是为了随机取一些data comp的记录:

data comp;
input x1 x2 x3 f;
cards;
1 1 1 4
1 2 1 5
2 1 1 3
2 2 1 2
1 1 2 1
1 2 2 8
2 1 2 7
2 2 2 6
;
run;
data one;
set comp;
if _n_=rantbl(1230,0.2,0.3,0.5);
run;
data three;
set comp;
if _n_=3;
run;
data two;
a=rantbl(1230,0.2,0.3,0.5);
run;
proc print data=comp;
run;
proc print data=one;
run;
proc print data=two;
run;
proc print data=three;
run;

data one和data three的结果在输出中看到的是不同的:
data one: Obs x1 x2 x3 f
                         1   1   2  1 5
                         2   2   1  1 3
data three: Obs x1 x2 x3 f
                        1  2   1  1 3
为什么会有这种问题呢?是不是和_n_的某些原理相关呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-8-13 08:40:51
为什么要相同呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-13 08:49:09
和_N_没关系,主要是rantbl(1230,0.2,0.3,0.5);的原因。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-13 08:53:44
40   data one;
41   set comp;
42   rantbl=rantbl(1230,0.2,0.3,0.5);
43
44   put rantbl= _n_=;
45   run;

rantbl=3 _N_=1
rantbl=2 _N_=2
rantbl=3 _N_=3

rantbl=1 _N_=4
rantbl=3 _N_=5
rantbl=2 _N_=6
rantbl=3 _N_=7
rantbl=3 _N_=8
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-8-13 09:51:57
rantbl一次不是只输出一个数?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群