2020/12/21
R連携
SpotfireではTERRと呼ばれるR言語のランタイムエンジンが搭載されており、単体でR言語を走らせることができます。今回はTERRをテーマに3回に分けて説明します。第2回目は、Spotfire本体からTERR側にパラメータを渡す方法について説明します。TERRの概要や事前準備に関しては、第1回目の記事をご覧ください。
なお、本コンテンツで利用したSpotfireのバージョンは10.10/11.4です。ご利用環境によって、一部画面構成が異なりますので、ご了承ください。
第1回目の記事では、TERRからデータを受け取れました。反対に、モデルのパラメータをSpotfireから渡すこともできます。今回は発生させる行数をSpotfire側で指定し、TERR側へ渡せるようにします。
まずはプロパティ機能を利用し、数値を入力できるようにします。Spotfire画面左側の「ビジュアライゼーション タイプ」フライアウトより、「テキストエリア」をドラッグ&ドロップし、テキストエリアを作成してください。
次に、テキストエリアの右上の赤枠「編集」ボタンをクリックすると、「テキストエリアを編集」ダイアログが表示されます。
さらに「プロパティ コントロールの挿入」ボタンをクリックし、「入力フィールド」を選択してください。
「プロパティコントロール」ダイアログが表示されます。「新規」をクリックします。
「新しいプロパティ」ダイアログで、以下の設定をします。設定が完了したらOKを押し、「プロパティコントロール」ダイアログも閉じて下さい。
設定項目 | 値 |
---|---|
プロパティ名 | inputNum |
データ型 | Integer |
値 | 100 |
「テキストエリアを編集」ダイアログも保存して閉じると、次のようにデフォルト値が100の入力フィールドが追加されていることが確認できます。
作成したプロパティをTERRで利用します。作成したデータ関数を開きます。「ツール」メニューから「データ関数を登録」を選択してください。「データ関数の登録」ダイアログが表示されます。
「パラメータの入力」タブで「追加」を選択し、Spotfireから受け取るパラメータの設定をします。次のように設定してください。
設定項目 | 値 |
---|---|
入力パラメータ名 | inputNum |
タイプ | 値 |
使用可能なデータ型 | 「integer」にチェックを入れる |
必須パラメータ | チェックを入れる |
「スクリプト」タブに戻り、以下のRコードを入力してください。
これらの設定により、SpotfireからinputNumのパラメータをTERRが受け取り、その値を利用して乱数を生成する設定ができました。最後に、生成した乱数をSpotfire側へ渡すために、「出力パラメータ」タブに移動し、次のように設定してください。
設定項目 | 値 |
---|---|
結果パラメータ名 | rnorm_datatable |
タイプ | テーブル |
設定が完了したら、「データ関数の登録」ダイアログ右上の「実行」をクリックします。「パラメータの編集」ダイアログが表示されます。
「入力ハンドラ」では、次の設定をします。
「出力ハンドラ」では、次の設定をします。
設定が完了したら「OK」をクリックしてください。
Spotfireでロードされているテーブルを確認してください。rnorm_datatableという名前のデータテーブルが生成されていることがわかります。
また、テキストエリアの入力フィールドの100の値を、任意の整数に変えてみてください。ヒストグラムやデータテーブルを表示している場合、更新マーク(次グラフの赤枠)が表示されます。これをクリックすると、変更した入力フィールドの値を入力パラメータとしてTERRのスクリプトを実行し、結果の更新が確認できます。
【R連携】最新の記事
rnorm_datatable = rnorm(inputNum))