作者lroxe (恶劣)
看板Statistics
标题[程式]SAS MACRO相关问题
时间Tue Nov 5 19:59:08 2013
[软体程式类别]:
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