2021/02/24

R連携

複数の計算カラムを一括作成

このコンテンツでは、TERRを利用して複数の計算カラムを一括で作成する方法について解説します。
なお、本コンテンツで利用したバージョンはSpotfire10.10です。ご利用環境によって、一部画面構成が異なりますので、ご了承ください。

計算カラムとは

計算カラムとは、データテーブル内の既存のカラムに基づいて計算を行い、新規に作成されるカラム、またはSpotfireの作成機能自体を指します。計算カラムの操作方法については、こちらの記事も参照ください。

計算カラムをSpotfireの標準機能で作成する場合には、一度に1つのカラムしか追加できません。例えば20カラム作成したい場合には、20回同じ作業をする必要があります。

このようなケースでは、TERRやPythonを活用して繰返し操作を一括処理することにより、作業を効率化できます。

テストケース

本記事では、次のようなケースを、TERRを利用して実現します。

  • データテーブルの中に、複数のパラメータに関する測定値と基準値がある
  • これらの各パラメータの差分を一括で計算する
  • 計算したカラム(計算カラム)をもとのデータテーブルに追加する

テストデータの作成

本ケースで利用するテストデータを、TERRを利用して作成します。次のようなデータテーブルを作成します。

  • カラム数:64
  • レコード数:100
  • データの値:乱数

データ関数の登録

Spotfireメニューより、「ツール」 >> 「データ関数を登録」を選択すると、「データ関数の登録」ダイアログが表示されます。次のように設定してください。

  • タイプ:Rスクリプト – TIBCO Enterprise Runtime for R
  • スクリプト:以下のコードを入力
a = matrix (rnorm(100 * 64), 100, 64)

R言語に関しては詳しく解説しませんが、rnormという関数で乱数を100×64個作成し、それをmatrixという関数で縦100件、横64件の行列を作成して変数aに格納しています。

出力設定

「出力パラメータ」タブを選択し、作成した変数aを「テーブル」として登録してSpotfire側で取得できるようにします。「追加」を選択し、出力パラメータを次のように設定してください。

  • 結果パラメータ:a
  • タイプ:テーブル

設定が完了したら、ダイアログ右上の「実行」ボタンをクリックします。

実行時の設定

実行ボタンをクリックすると、「パラメータの編集」ダイアログが表示されます。TERRで作成した変数aをSpotfire側でどのように扱うかを設定します。「出力」タブを選択し、次の設定をしてください。

  • 出力パラメータ:a
  • 出力ハンドラ:データテーブル
  • 新しいデータテーブルの作成をチェックする(データテーブル名:a)

最後に「OK」をクリックすると、TERRが実行され、実行結果がSpotfire側にデータテーブルとして出力されます。

Spotfire側には「a」という名前のデータテーブルが存在していることが確認できます。これでテストデータの作成は完了です。

計算カラムの作成

作成したテストデータに対して、複数の計算カラムを一括で追加するスクリプトをTERRで作成します。メニューの「ツール」 >> 「データ関数の登録」を選択してください。「データ関数の登録」ダイアログでは、次のように設定してください。

  • タイプ:Rスクリプト – TIBCO Enterprise Runtime for R
  • スクリプト:以下のコードを入力
ret = a[1:32] - a[33:64]

データテーブルaの1~32カラムまでのデータから、33~64のカラムの値を引き算するコードとなっています。これで32個の新しい差分カラムを一括で作成できます。作成したカラムは、変数retに格納されます。

入出力設定

入力設定としては、Spotfireのデータテーブルaを、TERR側で読み込むための設定にします。
出力設定としては、TERRで作成した変数retをSpotfire側に出力し、データテーブルaにカラムとして追加する設定をします。

まず、「データ関数の登録」ダイアログの「パラメータの入力」タブを選択します。「追加」を選択し、次の通り設定してください。

  • 入力パラメータ:a
  • タイプ:テーブル
  • 使用可能なデータ型:Integer、Realにチェックを入れる

同様に、「出力パラメータ」タブで「追加」を選択し、次の通り設定してください。

  • 結果パラメータ:ret
  • タイプ:テーブル

設定が完了しましたら、「データ関数の登録」ダイアログの右上の「実行」をクリックします。

実行時の設定

「パラメータの編集」ダイアログが表示されます。
「入力タブ」では、Spotfireのデータテーブルaの全てのカラムをTERRに渡す設定をします。

  • 入力ハンドラ:カラム
  • データテーブル:「カラムの選択」から全カラムを選択する

「出力タブ」では、TERRで作成した変数retを、Spotfireのデータテーブルaのカラムとして追加する設定をします。

  • 出力ハンドラ:カラム
  • データテーブル:a

設定が完了しましたら「OK」をクリックして、処理を実行します。

Spotfireでデータテーブルaを表示すると、新規カラムが32件追加されていることが確認できます。今回は簡単な引き算のスクリプトを試しましたが、TERRのスクリプトを記載することで、これ以外にも様々な集計方法を設定できます。これらはTERRだけでなく、Pythonでも同様に実行可能です。

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