我想根据不同的时间阶段(每个时间阶段都是往前rolling一年),创建不同的dummy variable, 一共创建了7个时间dummy, 但是,只有最后一个dummy有数值,其他的还是为缺失值(如图所示)。请教大家,怎么修改这个错误,或者有其他更好的办法。谢谢!
我的思路是:第一步先建7个dummy, 所有值为缺失; 第二步是根据设定的时间条件来替换那些缺失值。
*step 1: create 7 dummy varialbes with missing value;
data bbb (DROP = i);
set period;
array A {*} period_1 - period_7;
do i = 1 to 7;
A(i) = . ;
end;
run;
*step 2: replace all missing values accoring to different time conditions;
%macro perioddummy;
%do count = 1 %to 7;
data ccc;
set bbb;
if (1993 + &count) <= year <= (1995 + &count) then period_&count=0;
else if (1996 + &count) <= year <= (1998 + &count) then period_&count=1;
else period_&count=2;
run;
%end;
%mend;
%perioddummy;