一个data步:
proc sort data=a;
by id year qtr;
run;
data b;
do tmp=1 to nobs;
set a nobs=nobs point=tmp;
con=.;
if r<15 then output;
else do;
con=1;
_start=tmp;
_end=tmp;
_endflag=0;
do while(_endflag=0 and _end<nobs);
_end=_end+1;
_id=id;
set a point=_end;
if r>=15 and _id=id and _end<=nobs then con=con+1;
else _endflag=1;
end;
do i=_start to ifn(_end=nobs and r>=15,_end,_end-1);
set a point=i;
output;
end;
if _end=nobs and r>=15 then stop;
tmp=_end-1;
end;
end;
stop;
drop _:;
run;