0
我正在嘗試編寫宏。 Marco是關於輸出重複的。然後將其全部添加到一個數據集中。這個數據集將有兩列:表名(我在一個庫中選擇),主鍵。 那麼,我如何獲得宏中的所有表名? 我以爲我可以這樣做:dataset ='& data。'作爲此數據集的新列。但宏將把它們全部視爲&數據。而不是交換到表名。如何將數據集的名稱作爲SAS列中的列
謝謝
我正在嘗試編寫宏。 Marco是關於輸出重複的。然後將其全部添加到一個數據集中。這個數據集將有兩列:表名(我在一個庫中選擇),主鍵。 那麼,我如何獲得宏中的所有表名? 我以爲我可以這樣做:dataset ='& data。'作爲此數據集的新列。但宏將把它們全部視爲&數據。而不是交換到表名。如何將數據集的名稱作爲SAS列中的列
謝謝
這是不容易識別你問什麼了,但在這裏,你可以使用兩個出發點。
您可以使用:進入選項,使持有的由分隔符隔開很多事情列表中的宏變量:
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();
,它使用與數據串,」是你所需要的在這裏,所以使用dataset =「&data」。但我不明白是否t他是你的問題,還是你需要幫助在宏中構建所描述的datastep?它總是很好地發佈你的代碼,所以人們可以更好地理解問題... – kl78