If I understand you correctly, you want the following for all dates prior to October, 2020:
data want;
set have;
rate= volume/fee;
rate_lag1 = lag(rate);
rate_lag2 = lag2(rate);
rate_diff = dif(rate); *Replacing rate_diff = rate - rate_lag1;
rate_diff_lag1 = lag(rate_diff);
rate_diff_lag2=lag2(rate_diff);
pred_rate=rate_lag1 -0.68944167689726*rate_diff_lag1-0.4791311284*rate_diff_lag2;
run;
But you want to use pred_rate instead of rate (and lag of pred_rate instead of lag of rate) when DATE is after September 2020. If so, then this should do what you want:
data want;
set have;
rate= volume/fee;
rate_lag1 = ifn(date<'01oct2020'd,lag(rate),lag(pred_rate));
rate_lag2 = ifn(date<'01oct2020'd,lag2(rate),lag2(pred_rate));
rate_diff = ifn(date<'01oct2020'd,dif(rate),dif(pred_rate));
rate_diff_lag1 = lag(rate_diff);
rate_diff_lag2=lag2(rate_diff);
pred_rate=rate_lag1 -0.68944167689726*rate_diff_lag1-0.4791311284*rate_diff_lag2;
run;
Instead of changing the final PRED_RATE= statement based on the date value, it changes the components based on the date value.
... View more