看板 Statistics 關於我們 聯絡資訊
[軟體程式類別]: SAS [程式問題]: 資料處理 [軟體熟悉度]: 中(3個月到1年) [問題敘述]: 我的資料大概是長這樣(股票的) 代號 XXX YYY 9901 XXX YYY 1101 XXX YYY 2202 XXX YYY 3333 XXX YYY 4444 XXX YYY 5577 XXX YYY ........ 想請問有沒有方法,用DO迴圈從1101讀到9999 (其中會有些代號是空的,不存在) 跑到代號是1101的,就全都輸出成1101的SAS資料檔, 跑到空代號的時候就跳過,不要輸出檔案。 LIBNAME A 'C:\TEJ\01'; LIBNAME B 'C:\TEJ\02'; %MACRO test; %DO s=1101 %TO 9999 ; DATA B.b&s ; SET SAS.aaa ; IF stock ^= &s THEN DELETE ; RUN; %END; %MEND; %test 我現在是用類似上面這樣,讀1101時,會匯出一個SAS檔到B資料夾裡面 可是讀到空的股票代號時,也會產生出空的SAS檔 請問想要避免空檔的產生應該要怎麼辦呢? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.131.29 ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1436951896.A.C79.html
MOONY135: 一開始不要把空的代號抓進去要開始切割的檔案不就好了. 07/15 21:28
welly7566: 您是說%DO s=1101 %TO 9999這邊嗎? 07/16 00:47
tew: 爬文吧 有人問過 07/16 07:49
luenchang: aaa檔有多大? 你的code把它讀了近8000次。但目的是切檔 07/17 23:49
luenchang: 可參考這篇文章,才兩頁而已,先照做試式看能不能解決 07/17 23:57