楼主: wayneenyaw
1085 0

[问答] 请教macro变量能不能在一次运行中改变内存值 [推广有奖]

  • 0关注
  • 0粉丝

初中生

85%

还不是VIP/贵宾

-

威望
0
论坛币
453 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1149 点
帖子
14
精华
0
在线时间
25 小时
注册时间
2016-12-6
最后登录
2020-10-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问各位高手,SAS的Macro巨集能否改变变量的值
具体需求如下
日期进场讯号出场讯号1出场讯号2持有状态单号

2015/7/5

1

..

2015/7/6

1

..

TRUE

1

2015/7/7

1

..

TRUE

1

2015/7/8

...

TRUE

1

2015/7/9

.

1

.

TRUE

1

2015/7/10

1

1

.

2015/7/11

...

TRUE

2

2015/7/12

1

..

TRUE

2

2015/7/13

...

TRUE

2

2015/7/14

..

1

TRUE

2

2015/7/15

.

1

.

2015/7/16

1

..

2015/7/17

1

..

TRUE

3

2015/7/18

..

1

TRUE

3

2015/7/19

1

1

.

2015/7/20

.

1

.

TRUE

4

我有进场、出场讯号1、出场讯号2,想要在SAS里写出持有状态和单号
规则是:当进场讯号出现后隔天持有,其余的进场讯号都不再理他
当出场讯号1或出场讯号2出现就当天出场,出场后若还有出场讯号也都不理他
如果这是写在VBA里,我可以这样做

Dim HoldOn as Boolean, No as Integer
HoldOn=False
NO=0
For i=3 to 20
  If HoldOn=True Then
      Range("E" & i).Value=HoldOn
      Range("F" & i).Value=NO
  End If
  '写入讯号后才判定隔天是否应进出场
  If HoldOn=False And In=1 Then
      HoldOn=True
      NO=NO+1
  End If
  If HoldOn=True And (Out1=1 Or Out2=1) Then HoldOn=False

Next i

会写出简单的VBA程式码是因为我想要在SAS里找到类似于HoldOn这样的开关变数
想来想去也只有Macro变数最有可能达到我的需求
但当我用SAS写了一段宏,却发现解析值无法改变
SYMBOLGEN:  巨集变数 HOLDON 会解析为 'False'
SYMBOLGEN:  巨集变数 H 会解析为 'False'
为此我想说是否是因为SAS一次性全部判断
还加了n去递增所有数据
以便于只针对每一笔资料去判定
但还是无法让SAS里的HoldOn像VBA里的HoldOn自由切换True和False
请问SAS里有没有办法做到这样的功能
感谢各位高手!!


options symbolgen;
%let HoldOn='False';

%macro qq(H);
        if &H='False' then do;
                HO=1;
        end;
        %if In=1 and HoldOn=False %then %do;
                %let HoldOn=True;
               
        %end;
        %if out1=1 and HoldOn=True %then %do;
                %let HoldOn=False;
               
        %end;

%mend qq;


data TMP0;
        set P2;

        do i=1 to 840000000;
                if i=n then %qq(&HoldOn);
        end;

run;


P2的片段就是上面Demo的表格
二维码

扫码加我 拉你入群

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

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

关键词:Macro Mac CRO acr Integer Macro

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 23:17