引用 SAS 宏变量时何时使用双引号
When to use double quotes while referencing a SAS macro variable
引用 SAS 宏变量时,什么时候需要用双引号括起来,什么时候不需要?
即何时使用“&var_name”以及何时使用&var_name
引号不是宏语言的一部分。宏语言的工作(最常见)是生成 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 视为引用数据步变量。
宏语言不需要引号来标识字符串,因为宏语言中的一切都是文本字符串。宏语言不知道数据步变量。
这完全取决于宏变量的值以及您想用它做什么。例如:
%let unQuoted = My string;
%let quoted = "My string";
data _null_;
isEqual = "&unQuoted." = "ed.;
put _all_;
run;
打印isEqual=1
,表示为真。如果这对您没有帮助,请在您的问题中更具体。
引用 SAS 宏变量时,什么时候需要用双引号括起来,什么时候不需要? 即何时使用“&var_name”以及何时使用&var_name
引号不是宏语言的一部分。宏语言的工作(最常见)是生成 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 视为引用数据步变量。
宏语言不需要引号来标识字符串,因为宏语言中的一切都是文本字符串。宏语言不知道数据步变量。
这完全取决于宏变量的值以及您想用它做什么。例如:
%let unQuoted = My string;
%let quoted = "My string";
data _null_;
isEqual = "&unQuoted." = "ed.;
put _all_;
run;
打印isEqual=1
,表示为真。如果这对您没有帮助,请在您的问题中更具体。