楼主: fenfenup
1694 0

[问答] 新手提问:求数组中连续增大的数值个数,空值忽略不统计 [推广有奖]

  • 0关注
  • 0粉丝

高中生

25%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
156 点
帖子
4
精华
0
在线时间
45 小时
注册时间
2016-1-18
最后登录
2021-3-29

楼主
fenfenup 发表于 2016-5-17 17:13:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
宏实现求数组中连续增大的数值个数,空值忽略不统计


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





二维码

扫码加我 拉你入群

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

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

关键词:新手提问 options length RETURN symbol SAS 宏函数 数组

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-24 10:20