[程式] SAS MACRO相關問題
[軟體程式類別]:
SAS
[程式問題]:
移動平均 利用 巨集及迴圈撰寫
[軟體熟悉度]:
低(1~3個月)
[問題敘述]:
新手發文 請多多見諒與指導
我現在有一組資料 為報酬的月資料
CODE TIME RETURN
ex. 1 198112 0.5
1 198201 0.3
.
.
2 198112 0.8
2 198201 0.7
.
.
.
120 198112 0.6
120 198201 0.4
120 198202 0.2
想算前當期六個月的移動平均報酬,已爬過文,可以利用PROC EXPAND 得到
不過 因為想練習一下巨集所以想要利用巨集來寫
以下是想要做的方式
程式雛形
%MACRO TEMP;
DATA Q;
SET W;
%DO i=1 %TO 6;
%DO j=7 %TO 12;
%IF month < %EVAL(year1*100+&i) %THEN DELETE;
%IF month >= %EVAL(year1*100+&j) %THEN DELETE;
PROC MEANS DATA=Q NOPRINT;
BY code;
OUTPUT OUT=_____ MEAN(RETRUN)=re6;
RUN;
QUIT;
%END; %END;
%MEND;
%TEMP;
year1為在巨集前就利用函數做出來的變數只取 年份[year1=year(month)]
簡單的來說 就是利用巨集把資料取六個月出來 再利用proc means 算出平均
之後再利用proc append把資料合併起來,不過如何讓 out 後面輸出的檔跟著
迴圈計算的次數變動?
煩請高手 提示解惑 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.22.18.101