SAS Macro基础


1.

当SAS运行时,就会创建Global Symbol Table.
Local table 是局部宏变量。创建Macro生成局变量,宏执行完之后,局部宏变量被删除

2.

%LET 自动去除头尾空格,大小写敏感。数值型token被当做 string token
call SYMPUT 保留头尾空格。data步的function可直接用在call symput中。
SYMPUTX 自动移除头尾空格
SYNGET 把macro table中的宏变量的值取出,赋值给DATA中的变量。
SQL 方式定义宏变量,也不去除空格
宏程序内定义的所有的宏变量都是local.除了%GLOBAL

3.

%SUBSTR(&a,1,1),没必要在变量位置加引号,SAS自动把Macro Var当做字符串.
宏函数宏和宏变量一样,哪都可以用。"a%length(&a.)"

4.

SAS在解析的时候会将两个连续的&符号解析成一个&符号

5.

注意宏处理器找不到单引号内的宏变量,只能用双引号

6.  Macro跳出“黑洞”

如果不是%Macro,只是简单宏变量或者字符串

*';*"*);

如果是调用整个Macro,多次执行下述代码

*';*"*);*/%mend;run;

相关