IMLを使わずFCMPで行列計算② SASデータセット⇔行列

 data wk1;

a=1;b=2;c=4;output;

a=5;b=8;c=9;output;

run;


data wk2;

var1=3;var2=6;dum=99;output;

var1=2;var2=1;dum=99;output;

var1=0;var2=10;dum=99;output;

run;



wk1から全変数を読み込んでFCMP配列mat1(そのまま行列計算に使える)へ
wk2からvar1,var2だけを読み込んでFCMP配列mat2(そのまま行列計算に使える)へ

proc fcmp;

   array mat1[2,3] /nosym;

   array mat2[3,2] /nosym;

   array result[2,2];

   rc = read_array("wk1", mat1) ;

   rc = read_array("wk2", mat2 ,"var1","var2") ;

   put mat1=;

   put mat2=;

   call mult(mat1, mat2, result);

   rc = write_array("RESULT", result ) ;

quit;


結果をFCMP配列resultからSASデータセットRESULTへ


最後の書き出し部分で第三引数以降に出力時の変数名を指定できる
rc = write_array("RESULT", result ,"COL1","COL2") ;




0 件のコメント:

コメントを投稿