我遇到过一系列今天看起来像这样的SAS代码:
%*let var1=apple;
这是什么意思? (它是评论吗?还是一个宏?为什么%
符号?)
答案 0 :(得分:3)
Macro comments是通过在问题中使用%
作为正常注释星号前缀而创建的,与常规注释略有不同。
宏标记器和宏工具将处理宏中的常规注释*something;
。 99%的时间,这没关系;但是,在某些特定情况下,这是一个问题。
例如,如果要注释掉宏语法,则必须使用宏注释,否则它仍然有效:
%macro macvar_Test;
%let macvar=ORIGINAL;
*%let macvar=COMMENT;
%*%let macvar=MACRO COMMENT;
%put &=macvar;
%mend macvar_Test;
%macvar_Test;
请注意,&macvar
包含COMMENT
- 即使该行似乎已被注释掉。
宏标记器仍然处理宏注释,因此除非使用/* */
样式块注释,否则无法匹配的引用仍然会有问题。
答案 1 :(得分:1)
这是宏观评论。
所以这一行,如所写,将永远不会执行
答案 2 :(得分:1)
这只是评论的另一种方式:
来自http://www.lexjansen.com/pharmasug/2002/proceed/TechTech/tt07.pdf
除了作为乘法运算符之外, 星号在各个地方都可以找到 交互或交叉分类(例如 PROC FREQ中的TABLES语句和 表示重复一次的次数 字符串(如在PROC REPORT中)。 是的 曾经单独或在评论陈述 与斜杠(/ * ... * /)或百分比结合使用 签名(%)。星号也迫使SAS使用 通过计算确定数组下标 数组中的变量数。两个星号 表示取幂运算符。