2014-07-19 95 views
1

我的程序下面出現了什麼問題?我想導入幾個excel文件併合並它們。 重命名在導入步驟中不起作用。更重要的是,即使創建了數據集y1和y2,合併也不起作用。 謝謝。在SAS中的宏中寫入循環

proc sort data=sourceh.caps; 
by symbol; 
run; 

%MACRO RunProgram(month, year, n); 

PROC Import DATAFILE= "D:\new\&month. &year. &n. min correlations.xls" 
    dbms=excel5 OUT= sourceh.y&n. (rename=(avcorr=y&n.)) replace; 
    GETNAMES=YES; 
RUN; 


data sourceh.testy&month.&year.; 
merge sourceh.y&n. sourceh.caps; 
by symbol; 
drop number; 
Month="&month."; 
Year=&year.; 
run; 

%MEND; 

%macro l; 

%do n=1 %to 2; 

%RunProgram(Jan, 12, &n); 
%RunProgram(Apr, 12, &n); 

%end; 

%mend; 

%l; 
+0

「不行」需要解釋。我的猜測是你的變量名稱不正確。我也認爲你的宏不適合你想要的,因爲n = 1的輸出數據集將被n = 2覆蓋。 – Joe

+0

謝謝。它確實被覆蓋。我固定它,可能不是最優雅或有效的方式,但它的工作。 – Betty

回答

1

喬是對的,我們需要日誌錯誤。

您的代碼的語法看起來不錯,請檢查導入的文件是否按符號排序。

嘗試在proc導入後,在單獨的數據步驟(或與合併中的一個)中重命名該變量。

+0

謝謝。在單獨的數據步驟重命名工作。 – Betty