2017-04-25 110 views
2

我有一个SAS数据集,其中有一列包含我想用作宏变量的值。说的SAS数据集看起来像这样有一列:使用变量值作为宏变量的值

varname 
34 
367 
399 
87 

我要的是所有在列中的值,成为在宏变量一个连接字符串(适合于使用在if声明与in运营商)。其结果将是相同的:

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

我将如何做到这一点?

回答

5

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

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

%put var: &var; 

这将串联变量值两边有一个'separated by件将在所有值之间放置一个,:var通知SQL将结果保存在名为var的宏中;