[程式] SAS set連續檔名資料集

看板Statistics作者 (zxcccc)時間2年前 (2021/10/27 10:38), 2年前編輯推噓2(205)
留言7則, 3人參與, 2年前最新討論串1/1
[軟體程式類別]: SAS [程式問題]: 資料處理 [軟體熟悉度]: 新手 [問題敘述]: 我設立一個巨集 其中&amount是1~13連續的 %do j = 1 %to &amount; data slope1_5; set slope&j; run; %end; 但是其中有兩個資料集不存在 於是點開 slope1_5 就會跳出 data set has 0 observations. 如果我改用 %do j = 1 %to &amount; %if %sysfunc (exist(slope&j)) %then %do; data slope1_5; set slope&j; run; %end; %end; 那slope1_5只會出現最後一筆資料 proc print 出來 顯示每一筆資料都會跑一次 應該是後面那筆資料覆蓋了前一筆的資料 有沒有什麼方法能夠set 這種連續檔名 但中間有不存在資料集的方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.75.217 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1635302331.A.90D.html

10/27 11:29, 2年前 , 1F
set 那行改成
10/27 11:29, 1F

10/27 11:29, 2年前 , 2F
set %do i = 1 %to &amount. ; slope&i.
10/27 11:29, 2F

10/27 11:29, 2年前 , 3F
%end;;
10/27 11:29, 3F
AeiCheng: 試試 感謝 不過測試了之後 log 出現error:data does not exist slope1_5 一樣 no observations 10/27 11:29 ※ 編輯: zxcccc (60.250.75.217 臺灣), 10/27/2021 11:59:58

10/27 13:26, 2年前 , 4F
照你的第二個寫法,把"data slope1_5;set"這幾個字搬到
10/27 13:26, 4F

10/27 13:26, 2年前 , 5F
%do之前,把";run;"放到%end;之後,整個%do迴圈跟%if判
10/27 13:26, 5F

10/27 13:26, 2年前 , 6F
斷式只要包“slope&j"這七個字母就好
10/27 13:26, 6F

10/27 13:36, 2年前 , 7F
感謝 有成功了 ※ 編輯: zxcccc (60.250.75.217 臺灣), 10/27/2021 13:50:33
文章代碼(AID): #1XUBkxaD (Statistics)