2015-08-25 59 views
0

我正在嘗試編寫宏。 Marco是關於輸出重複的。然後將其全部添加到一個數據集中。這個數據集將有兩列:表名(我在一個庫中選擇),主鍵。 那麼,我如何獲得宏中的所有表名? 我以爲我可以這樣做:dataset ='& data。'作爲此數據集的新列。但宏將把它們全部視爲&數據。而不是交換到表名。如何將數據集的名稱作爲SAS列中的列

謝謝

+1

,它使用與數據串,」是你所需要的在這裏,所以使用dataset =「&data」。但我不明白是否t他是你的問題,還是你需要幫助在宏中構建所描述的datastep?它總是很好地發佈你的代碼,所以人們可以更好地理解問題... – kl78

回答

0

這是不容易識別你問什麼了,但在這裏,你可以使用兩個出發點。

您可以使用:進入選項,使持有的由分隔符隔開很多事情列表中的宏變量:

PROC SQL NOPRINT; 
SELECT EMPID, 
INTO :E1 SEPERATED BY 「 , 」 

FROM dset; 
QUIT; 

%PUT &E1; 

您還可以節省編號宏觀變量和& VARNUM(數保存爲一個變量),並在循環中做追加數據集(說你有)上市VAR1到VARx前提的數據集:解決「不工作macrovariables

*needs to be in a macro; 
%macro loop_through(); 
    %do i = 1 %to &Varnum; 

     /* proc append code here with data = &&var&i 
    (etc, &&var&i will resolve to &var1, &var2 and so on) */ 

    %end; 
%mend; 

%loop_through(); 
相關問題