memiscGUIアップデート(リコード機能,ログ機能追加)

リコード機能とログ機能を付けました。

追記

リコードのrange記法を追記しました。

リコード機能

変数上で右クリックしてリコードを選択すると,リコードのダイアログが表示されます。
f:id:phosphor_m:20100703214904p:image

一番上がその変数に存在している値です。その下の左側が変数の値とラベルの対応関係です。この二つを分けている理由が一見分からないかもしれませんが,ラベルは存在していない値にも付けることができ,反対に値は存在するがラベルはついていない場合があるので,そういったことを確認するためにこうこう構成にしています。

ラベルの欄の右側ついては,一番上がいまリコードしている変数の名前,その下がリコード結果を保存する変数の名前です。リコード先にリコード元と同じ名前,またはデータセット中に存在する変数名を入力すると,上書きされます。データセット中に存在しない変数名を入力すると,新変数として付け加えられます。

その下の「テンプレートの生成」ボタンを押すと,その下にリコードのテンプレートが生成されます。基本的に,これを書き換えてリコードすることになります。下の画像が実例です。
f:id:phosphor_m:20100703214905p:image

この例では,1は1のまま,2と3を2に統合して「中」というラベルを付ける,4と5を3に統合して「下」というラベルを付ける,その他の値はそのまま,というふうになっています。

otherwiseはこの例では意味がありませんが,リコードを指定していない「その他の値」についての処理を記述します。例えば一行目の1の値については,otherwise="copy"を指定しているので,今回の場合消してしまっても同じ結果になります。otherwise=NAにすれば「その他の値」は欠損値になりますし,otherwise=3とすれば「その他の値」はすべて3になります。

量的変数をカテゴリ変数にリコードしたい場合,range記法が便利です。

"低"=1 <- range(min , 40),
"中"=2 <- range(40.01, 60),
"高"=3 <- range(60.01, max)

このように書くと,最小値から40までが1でラベル「低」,40.01から60までが2でラベル「中」,60.01から最大値までが3でラベル「高」というふうにリコードされます。値を重複させるとエラーになるので気をつけてください。

基本的な書き方はmemiscパッケージのrecode()関数と同じです。詳細はそちらを参照してください。

ログ機能

データセット選択のドロップダウンメニューの右側に,「スクリプト」というボタンがあります。これをクリックすると,実行した操作のログを見ることができます。
f:id:phosphor_m:20100703214906p:image
変数に対する操作は,変数名の変更を除き,すべて記録されます。変数名の変更のログについては,実装上で迷っていることがあって,今回省きました。

このログは,データセットごとに分けて記録されます。また,一時環境中にデータセットとともに保存されているので,一度memiscGUIのウィンドウを閉じてしまっても,再度起動すれば見ることができます。


ダウンロードは下のリンク先から。

http://d.hatena.ne.jp/phosphor_m/20100628/1277718761