/* 對齊第5筆的寫法 */
proc IML SYMSIZE=10000; * 程式大時, 可能會無法跑, 這時要加SYMBOL SIZE;
start main;
use ddd; * 準備將data ddd 讀入;
read all into ddd[colname=colnAz]; * 此DDD(->variable at iml) 非彼DDD(->data set)沒有給VAR 就default 是numberic 才會讀進來;
r=nrow(ddd); *get number of row of ddd;
c=ncol(ddd); *get number of column of ddd;
mavg=repeat(.,r,1); * 備1 個空間存moving average ;
do i=5 to r;
sum=0;
do j=0 to 4;
sum=sum+ddd[i-j,1];
end;
mavg[i,1]=sum/5;
end;
out=ddd||mavg;
*------------output a matrix to a data file ;
NewCol= {"vol","MAVG"}; *create out from xys [ colname=cname ];
CREATE outDDD FROM out[colname=NewCol]; *cc1 is the library name;
APPEND FROM out;
finish main;
run;
quit;
---
/* 對齊第一筆的寫法 */
proc IML SYMSIZE=10000; * 程式大時, 可能會無法跑, 這時要加SYMBOL SIZE;
start main;
use ddd; * 準備將data ddd 讀入;
read all into ddd[colname=colnAz]; * 沒有給VAR 就default 是numberic 才會讀進來;
r=nrow(ddd); *get number of row of ddd;
c=ncol(ddd); *get number of column of ddd;
mavg=repeat(.,r,1); * 備1 個空間存moving average ;
do i=1 to r-4;
sum=0;
do j=0 to 4;
sum=sum+ddd[i+j,1];
end;
mavg[i,1]=sum/5;
end;
out=ddd||mavg;
*------------output a matrix to a data file ;
NewCol= {"vol","MAVG"}; *create out from xys [ colname=cname ];
CREATE outDDD2 FROM out[colname=NewCol]; *cc1 is the library name;
APPEND FROM out;
finish main;
run;
quit;
1.1 | 3.3 |
2.2 | 4.28 |
3.3 | 4.84 |
4.4 | 4.98 |
5.5 | 4.7 |
6 | 3.86 |
5 | |
4 | |
3 | |
1.3 |