2013-06-12 96 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

感謝 - 認爲它必須是簡單的。 –