SAS界隈の間で少し有名になりつつあるWPS。私も早速インストールしてみました。
以前からちょくちょく調べていたのですが、アップデートが進んでだいぶ使いやすくなったようです。
SASの一方的な値上げのせいでWPSを検討している会社も出てきているはずでしょうし、気になっている人も多いはず。
そこで新シリーズとしてWPSの設定と動作検証を始めます。
WPSとは
WPSとはworld programming社が開発した統合分析環境です。一つの開発環境でPython、R、SQLといったデータ分析の主要言語を取り扱うことができることが特徴です。日本ではブレインパッド社が代理店を担当しているようです。
どうして一部の人に注目されているかというと、世界初のサードパーティー製SAS言語開発環境だからです。すなわちSAS言語のコンパイラを内蔵しているため、SASのライセンスがなくてもSASプログラムを単独で実行できます。
今まではSASプログラムを実行するためにはSAS社が開発したソフトウェアを用意するしか選択肢がありませんでしたが、WPSの登場でSAS社以外の選択肢が生まれたわけです。
ただその一方でworld programming社はSAS社から訴訟を何度も起こされており、訴訟次第ではWPSユーザーに悪影響が出る可能性があることが最大の欠点です。今のところSASの日本法人は全然アクションを起こしておらず、欧州の裁判はSASが負けているようなので、今のところ大丈夫そうですが・・・
SASとWPSの訴訟問題については日本では全く興味持たれていないせいか日本語ではほとんど情報がありません。このブログで裁判の経緯はまとめる予定です。
インストール
WPSは有償版以外にもacademic editionとcommunity editionの2つの無償版があります。学生以外ならcommunity edition一択でしょう。community editionはクラウドやサーバー運用はできませんが、SASコンパイラは使えます。ダウンロードするにはユーザー登録が必要です。以下のリンクからユーザー登録してください。
ユーザー登録するとダウンロードリンクがメールで送られていますので、自分の環境にあったインストーラーをダウンロードします。
インストールは画面の指示に従うだけで環境変数設定などに面倒な設定は不要のようです。
開発画面
WPSは最初にワークスペースという作業領域を設定する必要があります。これは環境設定や分析結果、プログラムを保存するディレクトリのことです。
読み書きできる任意のフォルダを指定すればOKです。
ディレクトリを指定してOKをクリックすると、以下のような画面が出てきます。
従来のSASとは異なり、ウィンドウはすべてタブ表示が可能になっており、配置も自由に指定できます。複数のプログラムを開いているときはタブだと便利そうです。
またWPSは分析自体は必ずサーバーで実行する形になっています。これはローカルで環境構築しても同じです。また複数のサーバがあれば適宜切り替えて解析を実行することも可能みたいですね。
WPSの開発環境のタブは以下の通りです。
タブ名 | 説明 |
---|---|
リンクエクスプローラー | 接続しているサーバーの一覧を見ることができます。 |
リザルトエクスローラー | SASの各プロシジャ実行結果(HTML)はここに出力されます。 |
アウトプットエクスプローラー | サーバーの出力物の一覧をみることができます。 |
コンソール | サーバーの状態が表示されます。ローカル環境ならあまり見る必要はなさそう。 |
ローカルサーバーのログ | SASの実行ログはここに表示されます。 |
WPSサーバーエクスプローラー | サーバーのディレクトリを参照できるようです。SASの場合はライブラリを参照できます。作製されたSASデータセットは指定がない限りWORKライブラリに保存されます。SASの設定はこのタブから行います。 |
初期設定
知ってるとよさげな設定を3つ紹介します。
文字エンコード
試しにSASプログラムを実行してみます。ファイル>新規>プログラムを選択し、新規プログラムファイルを作成します。
WPSはSASHELPライブラリがちゃんとあります。ここから各種テストデータを利用できるようです。
今回はSASHELPのテストデータをFreqプロシジャで集計してみました。
title "WPSテスト"; ods trace on; ods output onewayfreqs=out; proc freq data=sashelp.zipcode ; tables timezone /out=frq; run;
実行結果は以下の通り
/*ログの一部*/
4
5 title "WPS";
6
7 ods trace on;
8 ods output onewayfreqs=out;
9 proc freq data=sashelp.zipcode ;
10 tables timezone /out=frq;
11 run;
Output Added:
-------------
Name: OneWayFreqs
Label: One-way frequencies
Template: Base.Freq.OneWayFreqs
Path: Freq.Table1.OneWayFreqs
-------------
NOTE: 41690 observations were read from "SASHELP.zipcode"
NOTE: Data set "WORK.frq" has 14 observation(s) and 3 variable(s)
NOTE: Procedure freq step took :
real time : 0.055
cpu time : 0.046
データセットは正常に出力されましたが、リザルトのタイトルが文字化けしています。デフォルトの状態だと日本語が正しく読み込めないようです。またlibnameを使う時にパス名に日本語が入っているとエラーになります。
この問題はサーバーのエンコード設定を追加すれば解決します。
WPSサーバーエクスプローラーから、ローカルサーバーを右クリック>オプション>起動>システムオプションをセットを選択します。
ここで追加ボタンをクリックして以下のような設定を追加ボタンをクリックし、以下のように入力します。
オプション:ENCODING
値:SHIFT-JIS
OKをクリックし、適用をクリックするとサーバーの再起動を聞かれます。再起動しないと設定が反映されないので、OKをクリックします。
再起動後は日本語も文字化けせずに正常に表示されるはずです。日本語環境の人はこの設定を必ず実施しましょう。
ショートカット
ショートカットキーはSASとは若干違います。
コメントアウトのショートカットキーはSASと同様にCtrl+/でできますが、プログラム実行はF3キーではできません。
ショートカットキーは任意に指定できるので、SASと同じショートカットを使いたい場合は各自設定しましょう。
ウィンドウ>設定>一般>キーの順にクリックすると設定画面が出てきます。
コマンド一覧から「SASプログラムを実行」を探し、バインディングを「F3」に書き換えて適用をクリックします。
他のコマンドも同様に任意のショートカットキーを指定できます。
リスト形式での出力
SASプロシジャの実行結果はデフォルトではHTML出力です。ですが以前のSASと同様にlisting(テキスト)で出力したい場合もあるかと思います。
その場合は、
ウィンドウ>設定>WPS>リザルトの順にクリックすると結果の出力形式の設定画面ができます。
テキスト(リスト)に変更して適用をクリックし、先ほどのプログラムを再実行すると以下のように出力されます。