Re: [程式] SAS用DO迴圈匯出資料
%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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):