全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1673 0
2016-05-17
宏实现求数组中连续增大的数值个数,空值忽略不统计


以下是我写的代码;但是执行结果不符合要求,求大神帮忙看下;看日志里面的  &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





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群