2013-06-12 61 views
1

我试图重现发现这里的代码,第7页专门对: http://www.nesug.org/proceedings/nesug04/pm/pm13.pdfsymget - 宏观变量列表

/* set up example*/ 
%let var_1 = 'abc'; 
%let var_2 = 'def'; 
%let var_3 = 'ghi'; 
%let val_1 = 1.5; 
%let val_2 = 3; 
%let val_3 = 4.5; 

/* use symget to create a list of var names and values */ 
data scores; 
    length var_name $32 value 8.; 

    do _N_ = 1 to 3; 
    var_name = symget('var_' || left(_N_)); 
    value = symget('val_' || left(_N_)); 
    end; 
run; 

但是,我得到的最终结果是只有最后一个变量,并不是所有的3:

var_name value 
ghi   4.5 

我想:

var_name value 
abc   1.5 
def   3 
ghi   4.5 

为什么不THI在工作吗?

回答

4

您错过了写一行的output语句。在此处插入:

do _N_ = 1 to 3; 
    var_name = symget('var_' || left(_N_)); 
    value = symget('val_' || left(_N_)); 
    output; 
end; 
+0

感谢 - 认为它必须是简单的。 –