全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5034 9
2011-06-27
看两段程序:
data comb;
set a;
do until  (last);
set b end=last;
end;
run;

data comb;
set a;
do i=1 to nobs;
set b  point=i nobs=nobs;
run;
我发现,第一段程序最后形成的comb只包括数据集a的第一条观测,可以解释为until last 的使用使得data 步循环提前终止
第二段程序形成的comb包括数据集a的所有观测,解释为是读完数据集a才使data步终止循环,事实上,我们使用point选项时,经常要用到stop,我想问各个好朋友们,
point i为什么有无限循环功能,until last为什么只循环一次,两者的机制区别在哪里呢?谢谢了
二维码

扫码加我 拉你入群

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

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

全部回复
2011-6-27 21:52:46
自己顶上去.....
二维码

扫码加我 拉你入群

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

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

2011-6-28 09:12:16
第一点,偷个懒抄了点SAS Help的原话
CAUTION:
Continuous loops can occur when you use the POINT= option.
When you use the POINT= option, you must include a STOP statement to stop DATA step processing, programming logic that checks for an invalid value of the POINT= variable, or both. Because POINT= reads only those observations that are specified in the DO statement, SAS cannot read an end-of-file indicator as it would if the file were being read sequentially. Because reading an end-of-file indicator ends a DATA step automatically, failure to substitute another means of ending the DATA step when you use POINT= can cause the DATA step to go into a continuous loop. If SAS reads an invalid value of the POINT= variable, it sets the automatic variable _ERROR_ to 1. Use this information to check for conditions that cause continuous DO-loop processing, or include a STOP statement at the end of the DATA step, or both.  
Data步中止的一个方法是读到eof标识,point读法读不到,只有读到a的eof才终止。do until在_n_=1的时候读到了b的eof,故中止。都加上output的话,point读法类似于做了一个笛卡尔积,就比较明显了。

第二点,我也很崇拜hopewell大大,大家共勉。

第三点,原地召唤hopewell大大.......
二维码

扫码加我 拉你入群

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

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

2011-6-28 11:33:24
同样膜拜BASE用神的牛
二维码

扫码加我 拉你入群

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

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

2011-6-28 11:41:52
第一段程序:
1. _N_=1:
      1). 读取数据集a 的第一条记录;
   2). do... until... 顺序读取数据集b的所有记录;
   3). run;输出记录(a第一条记录中的变量值和b 最后一条记录中的变量值);

2. _N_=2:
      1). 读取数据集a的第二条记录;
   2). do... until... 试图继续读取数据集b的记录未果 (b在_n_=1时已读到最后一条);
   3). 中止(没有输出).
二维码

扫码加我 拉你入群

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

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

2011-6-28 22:20:42
3# soporaeternus
看完hopewell的程序了,还有几个关于hash object的程序不能理解,现在正在看您的程序...嘻嘻....是您告诉我们这些新人要多看程序才能学好sas的...哈哈..
事实也的确如此...
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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