Re: [問題] 利用MACRO垂直合併資料

看板Statistics作者 ( 將心比心)時間17年前 (2009/03/13 17:06), 編輯推噓4(403)
留言7則, 2人參與, 最新討論串2/2 (看更多)
隨手寫一下的 因為沒有檔案可以測試不知道對不對 你的excel檔因該都是靠編號的吧 若是連續的話(最後檔為120) 就把最下面填上120 %macro merg( datanum ); %do i = 1 %to &datanum; PROC IMPORT OUT= data&i DATAFILE= "D:\test\book&i" DBMS=EXCEL REPLACE; SHEET="sheet1"; GETNAMES=NO; RUN; %end; DATA D; SET %do j =1 %to &datanum; data&j %end; ; PROC PRINT; RUN; %mend; %merg(datanum); ※ 引述《contente (妹妹)》之銘言: : PROC IMPORT OUT= A : DATAFILE= "D:\book1.xls" : DBMS=EXCEL REPLACE; : SHEET="sheet1"; : GETNAMES=NO; : RUN; : PROC IMPORT OUT= B : DATAFILE= "D:\book2.xls" : DBMS=EXCEL REPLACE; : SHEET="sheet1"; : GETNAMES=NO; : RUN; : PROC IMPORT OUT= C : DATAFILE= "D:\book3.xls" : DBMS=EXCEL REPLACE; : SHEET="sheet1"; : GETNAMES=NO; : RUN; : DATA D; : SET A B C; : PROC PRINT; : RUN; : 請問各位高手 : 如何利用MACRO指令一次把三個檔案合併再一起呢? : 謝謝回答! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.75.188.45

03/13 17:11, , 1F
data d; set data&1-&datanum 是OK的嗎?
03/13 17:11, 1F

03/13 17:11, , 2F
順序可能有誤 因為是在%end;之後 有可能跑不出來
03/13 17:11, 2F

03/14 00:21, , 3F
data d; set data&1-&datanum 這樣寫不行,建議改成:
03/14 00:21, 3F

03/14 00:22, , 4F
%do j=1 %to &datanum;
03/14 00:22, 4F

03/14 00:23, , 5F
proc append base=D data=data&j;
03/14 00:23, 5F

03/14 00:23, , 6F
%end;
03/14 00:23, 6F

03/14 00:26, , 7F
或者也可把 proc append...放在上面的%do i 迴圈裡也行
03/14 00:26, 7F
※ 編輯: kingbee 來自: 163.29.135.120 (03/16 09:25)
文章代碼(AID): #19kY8pl3 (Statistics)
文章代碼(AID): #19kY8pl3 (Statistics)