使用变量值作为宏变量的值
Use variable values as the value for a macro variable
我有一个 SAS 数据集,其中有一列包含我想用作宏变量的值。假设 SAS 数据集看起来像这样只有一列:
varname
34
367
399
87
我想要的是将列中的所有值变成宏变量中的串联字符串(适合在带有 in
运算符的 if
语句中使用)。结果将等同于:
%let var = %str('34','367','399','87');
我将如何做到这一点?
我会用PROC SQL
,但还有其他方法:
proc sql noprint;
select "'" || varname || "'"
into :var separated by ','
from have;
quit;
%put var: &var;
这会将变量值与两边的 '
连接起来。 separated by
块将在所有值之间放置一个 ,
。 :var
告诉 SQL 将结果保存在名为 var
;
的宏中
我有一个 SAS 数据集,其中有一列包含我想用作宏变量的值。假设 SAS 数据集看起来像这样只有一列:
varname
34
367
399
87
我想要的是将列中的所有值变成宏变量中的串联字符串(适合在带有 in
运算符的 if
语句中使用)。结果将等同于:
%let var = %str('34','367','399','87');
我将如何做到这一点?
我会用PROC SQL
,但还有其他方法:
proc sql noprint;
select "'" || varname || "'"
into :var separated by ','
from have;
quit;
%put var: &var;
这会将变量值与两边的 '
连接起来。 separated by
块将在所有值之间放置一个 ,
。 :var
告诉 SQL 将结果保存在名为 var
;