【SAS】EMのデータをEGで読み込む

EGとEMを同時に使っている環境はわりとあると思う。たぶん。
ただ、EGとEMでデータセットをやりとりしようとすると、なぜかうまくいかないことがある。
そこで、割と無理矢理編み出した感があるデータセットのやりとり手法を忘れないうちに載せておこうと思う。

EG→EMにデータセットを渡す場合

EGとEMが同じSASサーバ上にインストールされている場合は、同じライブラリを見える様にしてあげればEGもEMも中に入っているデータセットを参照できるようになる。
EMでライブラリを指定する場合は、プロジェクトのプロパティにある「プロジェクトの開始コード」にLIBNAMEステートメントを書いてあげればよい。
一番最初に書いたときは、書いたコードを選択して「即時実行」ボタンを押す必要があるが、それ以降はEMプロジェクトを開くときに自動実行されているため、ライブラリは自動で見える様になっている。
あとは、EM側でデータソース作成するときに、先ほど見える様にしたライブラリのデータセットを選んであげれば良い。

EM→EGにデータセットを渡す場合(通常編)

EM上でモデルによるスコアリングをしたデータをEGに渡したいときは、「ユーティリティ」タブにある「データの保存」を使用すれば良い。
データの保存先を先ほど指定したライブラリにすれば、EGからも見える様になる。
EM上ではスコアされたデータを確認するには、モデルノードなどを選択した上で、左のプロパティにある「エクスポート」を押すと、EMが裏で生成しているデータセットの中身を確認することができる。

EM→EGにデータセットを渡す場合(裏技編)

EMはプロジェクトごとにワーク領域を作成して、そこにスコアしたデータなどを全て書き出している。
その領域をEGから強引に読み込みにいくということができる。
以下にその手順を書く。

EM上で書き出したいデータセット名とライブラリ名を把握する

たとえば、「回帰ノード」でスコアされたデータを取り出したいときは、「エクスポートデータ」のTRAINデータが該当する。
この場合、EM上では「EMWS.Reg_TRAIN」と表示されているはずである。
この場合、「EMWS」がライブラリ名で、「Reg_TRAIN」がデータセット名である。

EMがワーク領域としている場所の絶対パスとライブラリ名を把握する

先ほどの「EMWS」はEMが勝手に作成したライブラリ名であるが、実はEM画面の下側にある「ログ」タブを押すとプロジェクトログが確認でき、「EMWS」の絶対パスが確認できる。
ログの中に「ライブラリ参照名EMWSを次のように割り当てました。」という記述があるはずなので、そこを探して欲しい。

EGで、先ほどのライブラリ名と絶対パスをLIBNAMEステートメントで書く

EG上で先ほど確認したライブラリ名と絶対パスをLIBNAMEステートメントで書けば、そこにあるデータセットを確認できてしまう。
なぜか、ライブラリ名はEMで指定されているものと同じで無ければエラーになるので注意。