proc sort data=a;
by ID;
run;
%Macro divide1(N=);
%Do i=1 %to &N;
Data D&i;
set a;
NewID=input(ID,3.);
run;
Data D&i;
Set D&i;
by NewID;
where NewID=&i;
count=_N_;
run;
Data D&i;
Set D&i;
if count>3;
run;
%end;
%Mend divide1;
%divide1(N=5);
data themean;
retain number sum numbertemp sumtemp 0;
set a;
keep id agemean;
by id;
if first.id then do;number=0; sum=0;end;
sum+dosage;
number+1;
if number=3 then do;numbertemp=number; sumtemp=sum;end;
if last.id then do;
if number>3 then do; number+(-3); sum=sum-sumtemp;
agemean=sum/number; end;
else agemean=sumtemp/numbertemp;
output;
end;
run;
proc print;run;