原程序在
http://www.pinggu.org/bbs/thread-872236-1-1.html
看看程序
data raw;
        input code 1 date 3-4 int 6;
datalines; 
1 1  0
1    1
1    2
1    3
1 3  0
1    1
1    2
2 4  0
2    1
2    2
2    3
2 45 0
2    1
2    2
;
data out(drop=temp);
        retain temp;
        set raw;
        if not missing(date) then temp=date;
        else date=temp;
run;
其实在这里用了一个中间变量TEMP,如果MISSING(DATE)为0的话,也就是DATE不是缺失值的时候,那么就把DATE的值临时存在TEMP里面,如果DATE为缺失值了,就把TEMP里面的值赋值给DATE一直到下一个不是缺失值的DATE时候,然后重复讲此时的DATE赋值给中间变量TEMP。巧妙之处就是利用一个TEMP中间变量。