http://crackman.net/
跟crackman读sas程序 QQ群:17286132
data raw;
input a b c;
datalines;
4 4 1
2 3 1
3 6 2
4 5 2
5 5 3
4 7 3
;
data out;
do _n_=1 by 1 until(last.c);
set raw end=last;
by c notsorted;
output;
end;
call missing(of _all_);
if not last then output;
run;
proc print;
run;
此程序:
1.这个程序来自:http://www.mysas.net/forum/viewtopic.php?f=4&t=6930&sid=6348c1437cdb0b8d47b3561a00877ca7
2.此程序非常干练,分组循环遍历观测对象值,建立一个指示结束变量,这里的by语句用的很巧,notsorted,不改变原始数据的排序,省去了一个proc sort过程,就是分组但不排序。每一个分组循环结束也就是last.c=1 true的时候执行后面的语句,也就是插入空行。