★データ解析備忘録★

ゆる〜い技術メモ

SAS/STATでもPROC IMLしてRを使う

前回の記事でSAS/IML StudioでRを走らせる方法を書きました。
y-mattu.hatenablog.com

で、その最後にSAS/STATでproc imlの中でRを使う方法を書いている方がいたのでそれを紹介しました。

SAS上でRを走らせよう SAS/IML | うずまき(4th Gen) | Jun-Systems

その中に書かれてる通りにやったら自分の環境でもうまくいったので自分ようにメモ。

前提と作業環境
  • SASの環境設定を書き換えるのでローカルにSASがインストールされてなければなりません。よってSAS雲丹などサーバー上にSASがある状態だとこの方法は使えないと思われます。
  • 自分の環境はWindows8.1、SAS9.4 (SAS/STAT13.2)
SAS環境設定の変更

SASはデフォルトではRが動くようにはできていません。
そこで無理に動かそうとすると、以下のようなエラーが出ます。

SASはsasv9.cfgというファイルに従って動いてます。なのでそれを見つけ、環境変数にRが動くように付け加えます。
sasv9.cfgは、通常
C:\Program Files\SASHome\SASFoundation\9.4
にあります。
そこに行ってsasv9.cfgを開くと

-config "C:\Program Files\SASHome\SASFoundation\9.4\nls\ja\sasv9.cfg

とあります。これは別フォルダにある別のsasv9.cfgに従って動くよ、ということです。
僕が使ってるSASは日本語バージョンなので、日本語版のcfgファイルに従ってるということですね。
そこで、
C:\Program Files\SASHome\SASFoundation\9.4\nls\ja
のsasv9.cfgを開くと、なんかいろいろ書いてあります。
sasv9.cfgはSASを動かす最重要ファイルなので、余計な書き換えはしないようにしましょう。
このファイルの一番最後に

/*自分で設定*/
-RLANG

を書き加えます。

これでSASでRが動くようになります。

Rを動かしてみる

この前の記事と同じようなコードを使いますが、今度はSAS/IMLではなくSAS/STATを使うのでproc imlの宣言が必要です。

結果
f:id:songcunyouzai:20160113114245p:plain
動きました。
予想ですが、SASの出力はHTMLなので、動きがあるようなものを作るleafletパッケージなんかも上手くいくのではないかと思います。

SASとRのデータのやり取りなどはまた今度書こうと思います。