SAS能不能做移动平均法?

来源:百度知道 编辑:UC知道 时间:2024/05/07 06:49:57
怎么做?

能。
利用sas编的计算移动平均的宏,如下:
%macro ma(x); 计算x天的移动平均线,例如x=5,就是计算5天的移动平均线
ma&x=0; 初始变量ma5=0
array l&x.ags(&x); 申明一个数组,数组名字为l5ags
l&x.ags(1)=close; close为收盘价
ma&x=ma&x+l&x.ags(1);
do i&x=2 to &x;
l&x.ags(i&x)=lag(l&x.ags(i&x-1));
ma&x=ma&x+l&x.ags(i&x);
end;
ma&x=ma&x/%eval_r(&x);
drop i&x l&x.ags1-l&x.ags&x; 将不必要的变量舍去
%mend;

在主程序中如下调用即可:
data w000001;
set w000001;
%ma(20);
%ma(30);
run;