2014-10-05 144 views
0

我有几个宏变量。例如,使用多个宏变量作为值创建SAS数据集

%let var1 = GOOD; 
%let var2 = BETTER; 
%let var3 = BEST; 

我想要做的就是利用这些宏观变量这样

数据集名称创建一个数据集:得分 变量名称:var

Obs var 
1  GOOD 
2  BETTER 
3  BEST 

回答

0

试试这个:

data want; 
    format var $12.; 

    var = "&var1"; 
    output; 

    var="&var2"; 
    output; 

    var="&var3"; 
    output; 
run; 

proc print data=want; 
run; 
+0

谢谢!你能简化一点吗? – 2014-10-05 19:32:45

+0

你想如何更简单?你想要的东西是通用的N个变量。通常你不想从宏中获取值并将它们放入数据表中。 – DomPazz 2014-10-05 20:17:03

0

如果你有一个命名约定,你可以查询sashelp。 vmacro表格:

data _null_; 
set sashelp.class; 
call symput('name'||put(_n_, 2. -l), name); 
run; 

%put &name1.; 
%put &name19.; 

proc sql; 
    create table want as 
    select name, value 
    from sashelp.vmacro 
    where substr(name, 1, 4)='NAME'; 
quit; 
+0

非常感谢! – 2014-10-06 00:31:37