/* 對齊第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
arrow
arrow
    文章標籤
    SAS IML
    全站熱搜
    創作者介紹
    創作者 cianfen 的頭像
    cianfen

    cianfen的部落格

    cianfen 發表在 痞客邦 留言(0) 人氣()