我的数据集如下所示。
accntid month flag output
123 201501 1 1
123 201502 .
123 201503 1 2
123 201504 1 2
123 201505 .
123 201506 1 3
123 201507 1 3
123 201508 1 3
我想计算输出列中的计数连续标志。 我想过使用retain和lag但是无法成功实现。
提前致谢!
答案 0 :(得分:2)
使用双DOW循环。第一个将计算记录数,第二个将输出数据。使用BY语句中的NOTSORTED选项让SAS定义组。
data want ;
do until (last.flag);
set have ;
by accntid flag notsorted ;
if flag=1 then output=sum(output,1) ;
end;
do until (last.flag);
set have ;
by accntid flag notsorted ;
output;
end;
run;