2021/02/24
R連携
このコンテンツでは、TERRを利用して複数の計算カラムを一括で作成する方法について解説します。
なお、本コンテンツで利用したSpotfireのバージョンは10.10/11.4です。ご利用環境によって、一部画面構成が異なりますので、ご了承ください。
計算カラムとは、データテーブル内の既存のカラムに基づいて計算を行い、新規に作成されるカラム、またはSpotfireの作成機能自体を指します。計算カラムの操作方法については、こちらの記事も参照ください。
計算カラムをSpotfireの標準機能で作成する場合には、一度に1つのカラムしか追加できません。例えば20カラム作成したい場合には、20回同じ作業をする必要があります。
このようなケースでは、TERRやPythonを活用して繰返し操作を一括処理することにより、作業を効率化できます。
本記事では、次のようなケースを、TERRを利用して実現します。
本ケースで利用するテストデータを、TERRを利用して作成します。次のようなデータテーブルを作成します。
Spotfireメニューより、「ツール」 >> 「データ関数を登録」を選択すると、「データ関数の登録」ダイアログが表示されます。次のように設定してください。
R言語に関しては詳しく解説しませんが、rnormという関数で乱数を100×64個作成し、それをmatrixという関数で縦100件、横64件の行列を作成して変数aに格納しています。
「出力パラメータ」タブを選択し、作成した変数aを「テーブル」として登録してSpotfire側で取得できるようにします。「追加」を選択し、出力パラメータを次のように設定してください。
設定が完了したら、ダイアログ右上の「実行」ボタンをクリックします。
実行ボタンをクリックすると、「パラメータの編集」ダイアログが表示されます。TERRで作成した変数aをSpotfire側でどのように扱うかを設定します。「出力」タブを選択し、次の設定をしてください。
最後に「OK」をクリックすると、TERRが実行され、実行結果がSpotfire側にデータテーブルとして出力されます。
Spotfire側には「a」という名前のデータテーブルが存在していることが確認できます。これでテストデータの作成は完了です。
作成したテストデータに対して、複数の計算カラムを一括で追加するスクリプトをTERRで作成します。メニューの「ツール」 >> 「データ関数の登録」を選択してください。「データ関数の登録」ダイアログでは、次のように設定してください。
ret = a[1:32] - a[33:64]
データテーブルaの1~32カラムまでのデータから、33~64のカラムの値を引き算するコードとなっています。これで32個の新しい差分カラムを一括で作成できます。作成したカラムは、変数retに格納されます。
入力設定としては、Spotfireのデータテーブルaを、TERR側で読み込むための設定にします。
出力設定としては、TERRで作成した変数retをSpotfire側に出力し、データテーブルaにカラムとして追加する設定をします。
まず、「データ関数の登録」ダイアログの「パラメータの入力」タブを選択します。「追加」を選択し、次の通り設定してください。
同様に、「出力パラメータ」タブで「追加」を選択し、次の通り設定してください。
設定が完了しましたら、「データ関数の登録」ダイアログの右上の「実行」をクリックします。
「パラメータの編集」ダイアログが表示されます。
「入力タブ」では、Spotfireのデータテーブルaの全てのカラムをTERRに渡す設定をします。
「出力タブ」では、TERRで作成した変数retを、Spotfireのデータテーブルaのカラムとして追加する設定をします。
設定が完了しましたら「OK」をクリックして、処理を実行します。
Spotfireでデータテーブルaを表示すると、新規カラムが32件追加されていることが確認できます。今回は簡単な引き算のスクリプトを試しましたが、TERRのスクリプトを記載することで、これ以外にも様々な集計方法を設定できます。これらはTERRだけでなく、Pythonでも同様に実行可能です。
次の記事
16進数から10進数へ変換【R連携】最新の記事
a = matrix (rnorm(100 * 64), 100, 64)