使用变量值作为宏变量的值

GFo*_*rce 2 sas sas-macro

我有一个SAS数据集,其中包含一个值,我希望将其用作宏变量.假设SAS数据集看起来像这样一列:

varname
34
367
399
87
Run Code Online (Sandbox Code Playgroud)

我想要的是列中的所有值成为宏变量中的连接字符串(适合ifin运算符的语句中使用).结果将等同于:

%let var = %str('34','367','399','87');

我怎么做到这一点?

Dom*_*azz 5

我会用PROC SQL,但还有其他方法:

proc sql noprint;
select "'" || varname || "'"
   into :var separated by ','
   from have;
quit;

%put var: &var;
Run Code Online (Sandbox Code Playgroud)

这将连接'两侧的变量值.这separated by件作品将,介于所有价值之间. :var告诉SQL将结果保存在名为的宏中var;