2014-10-05 145 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