複数計算カラムを追加

計算カラムを一気に追加したい

データの中に複数パラメータ分の測定値と基準値があり、
これらの差分を計算したい場合、計算カラムが便利です。

ただし、計算カラムは一度に1カラムしか追加できないため、
32カラム分集計したい場合は32回同じ作業をする必要があります。

このような場合はTERRを使用し、R言語で一気に処理をしてしまいましょう。
今回の例では縦が100行、横が64列のテーブルを作成し、

  • 1カラム目から33カラム目を引いた結果
  • 2カラム目から34カラム目を引いた結果
  • 3カラム目から35カラム目を引いた結果
  • 。。。

という作業で32カラム分の結果を作成します。

mc1

テストデータの作成

せっかくのR言語課題なので、テストデータもR言語で作成しましょう。

横64カラムで縦100行のデータテーブルを作成します。

データ関数の登録

「ツール」→「データ関数を登録」を選択し
「スクリプト」に下記スクリプトを記載して下さい。
a <- matrix ( rnorm ( 100 * 64) , 100 , 64 ) mc2

R言語に関しては詳しく説明しませんが、
rnormという関数で乱数を100×64個作成し、
それをmatrixという関数で縦100、横64のテーブルのようなものを作成してaに格納しています。

出力設定

「出力パラメータ」タブを選択し、
作成したa を「テーブル」として登録してSpotfire側で受け取れるようにします。
mc3

設定が終わったら右上の「実行」を押します。
mc4

実行時の設定

「パラメータの編集」という画面がでます。
これはaというR言語が出力したデータをSpotfire側でどのように扱うか設定します。
テーブルとして使いますので、データテーブルを選択してください。
mc5

a.1~a.64という64個の列を持つaというテーブルができます。
mc6

これでテストデータができました。

計算カラムの作成

ここからが本番です。
それでは計算したカラムを追加してみましょう。
1カラム目から33カラムを引いて、2カラム目から34カラムを引いて、、、、
という一連の計算はR言語では非常にシンプルに記述できます。

データ関数の登録

今度は計算カラムを追加するためのスクリプトを追加します。
再度「ツール」→「データ関数を登録」を選択し
「スクリプト」に下記を記載して下さい。
ret <- a[1:32]-a[33:64] 内容としてはaのテーブルを最初の32個のテーブルと、33個以降のテーブルに分けて、それぞれ引き算しています。 これで32個分のカラムが一気に算出できます。 R言語のベクトル演算の得意とするところです。 mc7

入出力設定

今回は出力パラメータだけでなく、入力パラメータも設定する必要がありますので、
「パラメータの入力」タブで「追加」を押して、aを定義します。
mc8

mc9

また、「出力パラメータ」で計算したretを定義します。
複数カラムありますので「タイプ」はテーブルにします。
mc10

計算の実行

「実行」ボタンを押すと入力と出力のパラメータを設定する画面が表示されます。

実行時の設定

入力はaテーブルを渡しますので、カラムを選択して全カラムを指定して下さい。
mc11

出力は元のaテーブルに結果カラムとして追加したいので「カラム」を選択してください。
mc12

ちなみに別に結果テーブルとして保存したい場合は「データテーブル」を選択するとretというテーブルが新規作成されます。

結果としてa.1(2)などの新規カラムが32個追加されていると思います。
mc13

今回は簡単に引き算にしましたが、これ以外に様々な集計方法も設定できますし、
カラムの並びも測定値32個、基準値32個だけでなく、偶数奇数並びの場合もR言語を少し変更すれば対応できます。
スクリプトを記載する事でかなり柔軟なデータ変換が可能になります。