SASデータセットとのデータのやりとり

Last-modified: 2009-06-04 (木) 19:33:11

SASデータセットからIMLへ,とその逆は,以下のようにできます.

************************************************************
SASデータセットとIML行列変数との受け渡し
090604 翔
************************************************************;


options nocenter;

data ds;
  do i=1 to 10;
    x=ranuni(0);
	y=x*2;
	output;
  end;
run;


proc iml;

use ds;
read all into matrix;
close ds;


print matrix;

/*

            MATRIX

        1 0.8356813 1.6713626
        2 0.6257031 1.2514063
        3 0.9069313 1.8138625
        4 0.4098095 0.8196189
        5 0.7313018 1.4626035
        6 0.0160752 0.0321504
        7 0.9751172 1.9502344
        8 0.3912675 0.7825351
        9 0.2343175  0.468635
       10 0.0731633 0.1463267
 */


create ds2 from matrix;
append from matrix;
close ds2;

quit;

proc print data=ds2;run;

/*

OBS    COL1      COL2       COL3

  1      1     0.83568    1.67136
  2      2     0.62570    1.25141
  3      3     0.90693    1.81386
  4      4     0.40981    0.81962
  5      5     0.73130    1.46260
  6      6     0.01608    0.03215
  7      7     0.97512    1.95023
  8      8     0.39127    0.78254
  9      9     0.23432    0.46863
 10     10     0.07316    0.14633

 */