看板 Statistics 關於我們 聯絡資訊
[軟體程式類別]: SAS [程式問題]: 資料處理 [軟體熟悉度]: 新手 [問題敘述]: 我有10年份的檔(a00,a01,a02......以此類推) 這10個檔都有相同欄位 我想把這10個檔中的F3這個欄位,不屬於空值的都刪掉 也就是 data a00_1; set a00; if f3~='' then delete; run; 但要做10次 可能有版友會問 為什麼不把10個檔先SET在一起,之後在一併刪除 因為檔案很大,SET在一起要花很多時間 所以我傾向先把不要的資料去除後再SET 我參考網路上寫迴圈的範例 https://bit.ly/2LgS4M8 以及 http://biostat.tmu.edu.tw/oldFile/enews/ep_download/20rb.pdf 寫了兩種迴圈,但都無法成功 [程式範例]: [第1種] %macro test_del; %do i=0 %to 9; data a0&i_1; set a0&i; if f3~='' then delete; RUN; %end; %mend; %test_del; [第2種] %macro multrep(startyear,stopyear); %do yrvalue=&startyear %to &stopyear; data a&yrvalue_1; set a&yrvalue; if f3~='' then delete; RUN; %end; %mend multrep; %multrep(00,09) 因為錯誤訊息很大一串 我覺得應該是我基本語法就有問題 所以錯誤訊息就先不貼 不知道錯在哪裡,懇請版友指點 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.77.66 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Statistics/M.1609770234.A.DCF.html
imaltar: 第一個macro , a0&i_1改成a0&i._1 01/04 22:46
nkes60917: 第二個macro &yrvalue後面加一個.就可以了 01/05 00:14
nkes60917: 如果你沒有加他會把後面的一起讀進去認定是一個macro v 01/05 00:14
nkes60917: ariable 01/05 00:14
nkes60917: 也就是說他找不到&yrvalue_1 01/05 00:16
真的成功了耶 感謝感謝 這個問題至少讓我困惑了5年吧 原來要加. 可是這個語法的邏輯是怎麼知道的 我GOOGLE網頁都沒找到 ※ 編輯: dofu1943 (210.241.87.243 臺灣), 01/08/2021 17:24:18