第一点,偷个懒抄了点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大大.......
