使用滞后/引导功能

时间:2013-12-04 08:24:09

标签: sas

请参考样本数据。我的数据集中有月,区和值。我需要一个如下所述的输出列。基本上我需要在Month by Values的基础上前进。请帮助。

Month   Region  Values  Output
1   R1  2   3
1   R2  4   5
2   R1  3   4
2   R2  5   7
3   R1  4   6
3   R2  7   5
4   R1  6   
4   R2  5   

谢谢, Gauraw

1 个答案:

答案 0 :(得分:0)

如果我做对了,你想把每个地区的下个月的价值指定为OUTCOME。如果是这样,那么你可以使用两个SET语句,第二个将添加相同的数据集,但是移动一个记录(FIRSTOBS = 2)。

proc sort data=yourdata; by region month; run;

data result;
   set yourdata;
   by region;
   do until(eof);
      set yourdata(firstobs=2 keep=values rename=(values=outcome)) end=eof;
   end;
   if LAST.region then call missing(outcome);
run;

我们需要将SET包装到DO UNTIL循环中,否则我们将丢失数据集的最后一条记录 - 同一数据集的第二个实例的结尾将提前一个记录到达,DATA步骤将停止。 / p>