SAS 移动平均



转自 http://bbs.pinggu.org/forum.php?mod=viewthread&tid=930483&page=1



data raw;
    input n a;
datalines;
1 0.1
2 0.2
3 0.3
4 0.4
5 0.5
6 0.6
7 0.7
8 0.8
9 0.9
10 1
11 1.1
12 1.2
13 1.3
14 1.4
15 1.5
;
/*1*/
data avg1;
    retain sum_aa sum_aaa sum_aaaa;
    set raw;
    sum_aa=sum(sum_aa,a,-lag5(a));
    aa=sum_aa/5;
    sum_aaa=sum(sum_aaa,aa,-lag5(aa));
    aaa=sum_aaa/5;
    sum_aaaa=sum(sum_aaaa,aaa,-lag5(aaa));
    aaaa=sum_aaaa/5;
    select;
        when(_n_ lt 5) call missing(aa,aaa,aaaa);
        when(_n_ lt 9) call missing(aaa,aaaa);
        when(_n_ lt 13) call missing(aaaa);
        otherwise;
    end;
    drop sum_:;
run;
/*2*/
proc expand data=raw out=avg2 method=none;
    id n;
    convert a=aa / transformin=(movave 5);
run;
proc expand data=avg2 out=avg2 method=none;
    id n;
    convert aa=aaa / transformin=(movave 5);
run;
proc expand data=avg2 out=avg2 method=none;
    id n;
    convert aaa=aaaa / transformin=(movave 5);
run;
data avg2;
    length n a aa aaa aaaa 8.;
    set avg2;
    select;
        when(_n_ lt 5) call missing(aa,aaa,aaaa);
        when(_n_ lt 9) call missing(aaa,aaaa);
        when(_n_ lt 13) call missing(aaaa);
        otherwise;
    end;
run;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值