在SAS中,“%*;”是什么意思?

时间:2016-05-18 12:57:04

标签: sas

我遇到过一系列今天看起来像这样的SAS代码:

%*let var1=apple;
这是什么意思? (它是评论吗?还是一个宏?为什么%符号?)

3 个答案:

答案 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使用   通过计算确定数组下标   数组中的变量数。两个星号   表示取幂运算符。