Re: [程式] SAS用DO迴圈匯出資料

看板Statistics作者 (小婊)時間15年前 (2010/11/06 22:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
%MACRO A; %DO n=1 %to 12; DM 'OUTPUT;CLEAR;LOG;CLEAR'; DATA sift_1; INFILE 'D:\FDATA\F_2005&n..txt'; INPUT a01 a02 $ a03 $ a04 a05; DATA data_1; SET sift_1(DROP=a02 a05); IF a04=49 THEN OUTPUT; RUN; PROC EXPORT DATA= WORK.DATA_1 OUTFILE= "C:\Users\Sunny\Desktop\2005&n..txt" DBMS=DLM REPLACE; RUN; %END; %MEND; %A; 試試看這樣行不行。 ※ 引述《SunnyStar (桑尼)》之銘言: : [軟體程式類別]: : SAS : [程式問題]: : 資料處理 : [軟體熟悉度]: : 新手(不到1個月) : [問題敘述]: : 我現在有60個資料檔(60個月份) (.txt) : 希望把它分開地一個個匯入SAS,然後做些資料處理(刪除欄位、刪除不符合資料) : 然後輸出成新的、較簡潔的資料檔(.txt) : 帶我用do迴圈,想說一次起碼跑個12個月份,確失敗了 : 是我語法下錯嗎?還是我必須手動匯入>處裡>匯出60次 @@ : 懇請大大們指導. : [程式範例]: : 附上我的程式碼,變數我有簡化過,原本input比較多變數 : DO n=1 to 12; : DM 'OUTPUT;CLEAR;LOG;CLEAR'; : DATA sift_1; : INFILE 'D:\FDATA\F_2005'+n+'.txt'; : INPUT a01 a02 $ a03 $ a04 a05; : DATA data_1; : SET sift_1(DROP=a02 a05); : IF a04=49 THEN OUTPUT; : RUN; : PROC EXPORT DATA= WORK.DATA_1 : OUTFILE= "C:\Users\Sunny\Desktop\2005"+n+".txt" : DBMS=DLM REPLACE; : RUN; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.244.82
文章代碼(AID): #1CrML1hk (Statistics)
文章代碼(AID): #1CrML1hk (Statistics)