data test4;
set test3;
by Acct_ID Month;
lag1=lag(c);lag2=lag2(c);
if last.Acct_ID then do;
if month>=3 then do;
d=mean(c,lag1,lag2);
end;
else d=c;
output;
end;
run;
data test4;
set test3;
by Acct_ID Month;
lag1=lag(c);lag2=lag2(c);
if last.Acct_ID then do;
if month>=3 then do;
d=mean(c,lag1,lag2);
end;
else d=c;
output;
end;
run;
自己定起来~
我自己写的CODE是这样的。
data test4;
set test3;
RR_0_30=c;
by Acct_ID Month;
if Acct_ID = lag2(Acct_ID) then
RR_0_30= (LAG2(c)+LAG(c)+c)/3;
IF last.Acct_ID;
drop c;
run;
proc sort data=test3;
by acct_id month;
run;
data test3;
set test3;
lag_c=lag(c);
lag2_c=lag2(c);
if lag2_c ^=. then RR_0_30=(c+lag_c+lag2_c);
else RR_0_30=c;
if last.acct_id;
run;