[爆卦]sas macro迴圈是什麼?優點缺點精華區懶人包

為什麼這篇sas macro迴圈鄉民發文收入到精華區:因為在sas macro迴圈這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者dofu1943 (那就念吧~~)看板Statistics標題[程式] sas迴圈一直寫錯時間M...


[軟體程式類別]:

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

你可能也想看看

搜尋相關網站