以下是我写的代码;但是执行结果不符合要求,求大神帮忙看下;看日志里面的 &DATAIN&K NE . 和&DATA&J NE .的判断条件不准确
OPTIONS MACROGEN SYMBOLGEN MPRINT MLOGIC;
%MACRO MAXCHGSECMTH(DATAOUT,DATAIN,CON,LENGTH);
%LET K=1;
%LET TEMP = 0;
&DATAOUT = 0;
%DO %WHILE(&K LE %EVAL(&LENGTH-1));
%IF &DATAIN&K NE . %THEN %DO;
%DO J = %EVAL(&K+1) %TO &LENGTH;
%IF &DATAIN&J NE . %THEN %DO;
%LET K = &J;
%IF &DATAIN&J &CON &DATAIN&K %THEN %LET TEMP = .;
%ELSE %LET TEMP = &TEMP+1;
&DATAOUT = MAX(&DATAOUT,TEMP);
%RETURN;
%END;
%END;
%END;
%IF &J EQ %EVAL(&LENGTH+1) %THEN %RETURN;
%LET K=%EVAL(&K+1);
%END;
%MEND;
data MAX_VAL;
BAL1 = 6910;
BAL2 = .;
BAL3 = -320;
BAL4 = .;
BAL5 = 0;
BAL6 = 11800;
BAL7 = .;
BAL8 = 17575;
BAL9 = 5000;
BAL10 = .;
BAL11 = 10968;
BAL12 = 9876;
ARRAY BAL{*} BAL1-BAL12;
%MAXCHGSECMTH(CHAR001,BAL,LE,12);
run;
看日志J=2时这个判断应该是FALSE啊,怎么会是true



雷达卡



京公网安备 11010802022788号







