2020/12/21

R連携

TERR連携-2(Rにパラメータを渡す)

SpotfireではTERRと呼ばれるR言語のランタイムエンジンが搭載されており、単体でR言語を走らせることができます。今回はTERRをテーマに3回に分けて説明します。第2回目は、Spotfire本体からTERR側にパラメータを渡す方法について説明します。TERRの概要や事前準備に関しては、第1回目の記事をご覧ください。

TERRへパラメータを渡す

第1回目の記事では、TERRからデータを受け取れました。反対に、モデルのパラメータをSpotfireから渡すこともできます。今回は発生させる行数をSpotfire側で指定し、TERR側へ渡せるようにします。

入力フィールドの設置

まずはプロパティ機能を利用し、数値を入力できるようにします。Spotfire画面左側の「ビジュアライゼーション タイプ」フライアウトより、「テキストエリア」をドラッグ&ドロップし、テキストエリアを作成してください。

次に、テキストエリアの右上の赤枠「編集」ボタンをクリックすると、「テキストエリアを編集」ダイアログが表示されます。

さらに「プロパティ コントロールの挿入」ボタンをクリックし、「入力フィールド」を選択してください。

「プロパティコントロール」ダイアログが表示されます。「新規」をクリックします。

「新しいプロパティ」ダイアログで、以下の設定をします。設定が完了したらOKを押し、「プロパティコントロール」ダイアログも閉じて下さい。

設定項目
プロパティ名 inputNum
データ型 Integer
100

「テキストエリアを編集」ダイアログも保存して閉じると、次のようにデフォルト値が100の入力フィールドが追加されていることが確認できます。

プロパティの値をTERRに渡す

作成したプロパティをTERRで利用します。作成したデータ関数を開きます。「ツール」メニューから「データ関数を登録」を選択してください。「データ関数の登録」ダイアログが表示されます。

「パラメータの入力」タブで「追加」を選択し、Spotfireから受け取るパラメータの設定をします。次のように設定してください。

設定項目
入力パラメータ名 inputNum
タイプ
使用可能なデータ型 「integer」にチェックを入れる
必須パラメータ チェックを入れる

「スクリプト」タブに戻り、以下のRコードを入力してください。

rnorm_datatable = rnorm(inputNum))

これらの設定により、SpotfireからinputNumのパラメータをTERRが受け取り、その値を利用して乱数を生成する設定ができました。最後に、生成した乱数をSpotfire側へ渡すために、「出力パラメータ」タブに移動し、次のように設定してください。

設定項目
結果パラメータ名 rnorm_datatable
タイプ テーブル

設定が完了したら、「データ関数の登録」ダイアログ右上の「実行」をクリックします。「パラメータの編集」ダイアログが表示されます。

「入力ハンドラ」では、次の設定をします。

  • 入力パラメータ:inputNum
  • 入力ハンドラ:文書のプロパティ
  • プロパティ:inputNum

「出力ハンドラ」では、次の設定をします。

  • 出力パラメータ:rnorm_datatable
  • 出力ハンドラ:データテーブル
  • 新しいデータテーブルの作成:rnorm_datatable

設定が完了したら「OK」をクリックしてください。

結果の確認

Spotfireでロードされているテーブルを確認してください。rnorm_datatableという名前のデータテーブルが生成されていることがわかります。
また、テキストエリアの入力フィールドの100の値を、任意の整数に変えてみてください。ヒストグラムやデータテーブルを表示している場合、更新マーク(次グラフの赤枠)が表示されます。これをクリックすると、変更した入力フィールドの値を入力パラメータとしてTERRのスクリプトを実行し、結果の更新が確認できます。

【R連携】記事一覧に戻る
全記事一覧に戻る