在引用SAS宏变量时,我何时需要用双引号将其括起来?何时不应该? 即何时使用"& var_name"何时使用& var_name
答案 0 :(得分:3)
引号不是宏语言的一部分。宏语言(最常见的)的工作是生成SAS代码。引号是SAS代码语言的一部分。因此,您应该在宏语言中使用双引号,无论您希望生成具有双引号的SAS代码。
例如。考虑SAS DATA步骤赋值语句:
name="Mary" ;
SAS语言使用引号告诉数据步骤编译器Mary是字符串值,而不是变量的名称。
如果你想使用宏语言,你可以这样做:
%let name=Mary;
data want;
Name="&name" ;
run;
或者你可以这样做:
%let name="Mary";
data want;
Name=&name;
Run;
在这两种情况下,引号与数据步骤编译器具有相同的含义。他们告诉它Mary是一个文本字符串。如果您没有引号,编译器会将Mary视为引用数据步变量。
宏语言不需要引号来标识文本字符串,因为宏语言中的所有内容都是文本字符串。宏语言不了解数据步骤变量。
答案 1 :(得分:0)
这一切都取决于您的宏变量的值以及您想要用它做什么。举个例子:
%let unQuoted = My string;
%let quoted = "My string";
data _null_;
isEqual = "&unQuoted." = "ed.;
put _all_;
run;
打印isEqual=1
,意思是真的。如果这对您没有帮助,请在您的问题中更具体。