我需要为week0-week187创建一个变量,并且正在做那个RBAR。数据看起来像:
ID WEEK
1 0
1 28
1 186
2 187
2 30
如果观察在给定的一周内,我试图让week0-week187变量为1或0,应该看起来像这样
周刊ID周...周末......周末......周末......周末18周1 0 1 0 ... 0 ... 0 ... 0 0
1 28 0 0 ... 1 ... 0 ... 0 0
1 186 0 0 ... 0 ... 0 ... 1 0
2 187 0 0 ... 0 ... 0 ... 0 1
2 30 0 0 ... 0 ... 1 ... 0 0
也许DO声明是必要的?大部分时间proc sql导致SAS崩溃,因为我的计算机是垃圾。首选SAS代码
答案 0 :(得分:1)
在说明“不要这样做”之后,这里是如何:
data have;
week=5;
run;
data want;
set have;
array weeks week0-week187;
do _t = 1 to dim(weeks);
weeks[_t]=0;
end;
weeks[week+1]=1;
run;
如果你需要这个“宽”的话,更好的方法就是转换东西,这样每个ID变量就有1行,我猜,这也很容易。但是,无论你需要什么,这种宽幅格式都可以轻松/轻松地完成而不需要加宽。