data a1;
input fee1-fee24 @@;
datalines;
. . . . 12 . 34 34 34 34 34 34 34 34 . . . . . . . . . .
4 . 4 . . . . . 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 65
. . . . . . . . . . . 4 4 4 4 4 . . . . . . . .
. . . . 12 . 34 34 34 34 34 34 34 34 . . . . . . . . . .
4 . 4 . . . . . 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 65
. . . . . . . . . . . 4 4 4 4 4 . . . . . . . .
;
run;
fee1-fee24是到目前为止的前24个月的交易,现在我想知道距离现在没有交易的月份数,比如第1条,fee1-fee4连续无交易,则为4,我自己也写了一个程序:
data a3;
set a1;
array fee(24) fee1-fee24;
format count $32.;
count="";
do i=1 to 23;
if fee(i)>0 then count=compress(count||"1");
else count=compress(count||"0");
end;
inc_cnt=countc(scan(count,1,1),"0");
run;
是可以实现的,感觉有点复杂
但是我尝试一下程序
%macro fee();
data a2;
set a1;
%do i=1 %to 24;
if sum(of fee1-fee&i.)>0 then
a1=&i.;
%end;
run;
%mend;
%fee;
是不对的,我自己觉得是要放stop,但是不知道改哪里放?或者加个do until啥的,怎么改这个程序,请高手指教,谢谢!



雷达卡


京公网安备 11010802022788号







