R)はTIBCOが独自で開発したR言語の実行エンジンです。TIBCOは元々S-Plusと言う統計解析ソフトの開発元です。S-PlusはS言語というR言語の元になった言語なので長い開発実績があります。S-Plus自体かなりデザインが古くなったり、世間的にはR言語の方がメジャーになってきているので、TERRとして刷新してSpotfire上に実装しています。動作は高速なのでRのパフォーマンスに不満がある方は使ってみるといいと思います。※S-Plusの画面TERRはTIBCO独自の開発ですが、Rと同じようにCRANからパッケージを追加して使うことができます。全てのパッケージに完全対応している訳ではありませんが、メジャーなものは大体使う事ができます。動作確認リストはこちらから取得できます。(一番下にあるWindows、Linux、Macなど書いてあるリンクから)パッケージの追加方法7.0以降であれば「ツール」の中に「TERRツール」というメニューがあるのでそちらから実行します。足りないものは利用可能なパッケージから選択して「インストール」する事ができます。個人で配布しているようなパッケージを使用したい場合はローカルファイルからインストールする必要があります。その場合はコンソールから実行します。今回は普通にinstall.packagesコマンドでインストールしてみました。Spotfireのバージョンが7以前の場合はTERRツールメニューがないので直接TERRのエンジンを実行してinstall.packagesコマンドを使います。R_XXXX\engine\bin内にあります。Modulesディレクトリが隠しディレクトリになっているので表示する設定にするか、DOSプロンプトから直接移動する必要があります。TERR.exeを実行すると、コンソールが立ち上がるので、コマンドからパッケージをインストールしてください。kiura時系列項目がカラムとしてまとめられているのをよく見ます。人間が読むには非常にわかりやすいのですが、コンピュータに制御させる場合は色々問題があります。色の基準でNameにすると表現できます。横軸の並びはアスキー順になるのでカスタムの並び替えにしなければならなかったり、そもそも文字列扱いされているので、時間として扱う事ができません。データの縦変換このような場合にデータを縦変換すると便利です。以前データ変換でピボットの解除の方法をご紹介したのですが、ピボットの解除は横データを縦型に変換するため、時間もかかりデータのボリュームも膨れ上がります。今回のデータも横に18パラメータあるので、100行あった場合は1800行になります。ピボットの解除はデータテーブルを一括変換する事しかできないので元データが数万行あった場合は時間もリソースも無駄に消費します。必要なデータだけ縦変換する方法として、TERRを使用する方法を紹介します。名前は任意でOKですが、reshape2パッケージを使用しますのでパッケージの欄に”reshape2′′と入力してください。※reshape2は標準パッケージではないので初回使用時にはダウンロードして追加する必要があります。こちらを参考にパッケージを追加してください。スクリプトに下記スクリプトを記入してください。idの項目はキーとして保持するカラム名のリストを設定してください。ここではindataを入力として縦変換(melt)したデータをoutdataとして受け取ります。indataとoutdataの定義もしていきます。入力パラメーターとしてindataを定義します。「使用可能なデータ型」は「すべて」を選択して下さい。出力パラメータ出力用にoutdataを定義します。「追加」から「結果パラメータ」outdata「タイプ」は「テーブル」を選択してください。準備が完了したので実行してみます。右上にある実行ボタンを押してスクリプトを実行します。実行時のパラメータとデータの割り当てを設定します。入力パラメータは、マークした範囲のデータを変換したいのでindataは「カラム」で検索式’*’にしておきます。これでカラムが可変になった場合でも対応できます。「制限の基準」で「マークされたロー」のチェックを忘れないでください。これを設定しないと全データが一度に渡されるので元も子もないです。outdataをSpotfire側で扱う方法を選択します。データテーブルで「新しいデータテーブルの作成」を選択します。「OK」を押すと実行されます。元データ(一行)を選択するとoutdataには18行作成されることが分かります。Bを選択するとoutdataが更新されます。ちなみにvariableカラムが文字列型なのでminutesカラムを計算カラムとして追加しました。式は下記のとおりです。(勿論R言語側で処理してもいいのですが、忘れました。)このように複数行を選択した場合でも適時データが更新されます。大量データを扱っていて、必要な箇所だけ縦変換する事ができました。横軸を時間で取り、色別に回帰を取りました。パッケージがない場合reshape2は標準パッケージではないので初回使用時にはダウンロードして追加する必要があります。こちらを参考にパッケージを追加してください。パッケージがない場合、左下のステータス表示にエラーが表示されます。装置などから出力されるデータの中に16進数の文字列が含まれていることがあります。Spotfireで扱える型は文字列型、数値型などがありますが、16進数文字列はあくまで文字列としてしか扱えないため、一度10進数に変換する必要があります。Spotfireの関数では16進→10進の変換関数はありません。↑16進だと文字列扱いになるので10進変換しないと計算ができない。このような時にはデータ関数の登録機能で関数を追加すると便利です。データ関数の登録データ関数の登録機能を使うと、R言語を使用して独自の関数を定義できます。新規ボタンをクリック式の関数画面が開くので名前と説明、登録する関数のカテゴリと戻り型を定義します。スクリプトは下記のように記載します。))式の関数の場合は入力カラムはinput1、出力カラムはoutputと記載する約束事になります。これで登録は完了です。カラム」で確認してみましょう。計算の関数の中に確かに登録したhextodecが追加されています。これで通常の関数と同じように使う事ができます。計算カラムだけでなくカスタム演算式内でも使用できます。kiura計算カラムを一気に追加したいデータの中に複数パラメータ分の測定値と基準値があり、これらの差分を計算したい場合、計算カラムが便利です。計算カラムは一度に1カラムしか追加できないため、32カラム分集計したい場合は32回同じ作業をする必要があります。このような場合はTERRを使用し、R言語で一気に処理をしてしまいましょう。今回の例では縦が100行、横が64列のテーブルを作成し、1カラム目から33カラム目を引いた結果2カラム目から34カラム目を引いた結果3カラム目から35カラム目を引いた結果。いう作業で32カラム分の結果を作成します。テストデータの作成せっかくのR言語課題なので、テストデータもR言語で作成しましょう。横64カラムで縦100行のデータテーブルを作成します。「ツール」→「データ関数を登録」を選択し「スクリプト」に下記スクリプトを記載して下さい。「テーブル」として登録してSpotfire側で受け取れるようにします。設定が終わったら右上の「実行」を押します。「パラメータの編集」という画面がでます。これはaというR言語が出力したデータをSpotfire側でどのように扱うか設定します。テーブルとして使いますので、データテーブルを選択してください。a.1~a.64という64個の列を持つaというテーブルができます。これでテストデータができました。計算カラムの作成ここからが本番です。それでは計算したカラムを追加してみましょう。1カラム目から33カラムを引いて、2カラム目から34カラムを引いて、、、、という一連の計算はR言語では非常にシンプルに記述できます。今度は計算カラムを追加するためのスクリプトを追加します。再度「ツール」→「データ関数を登録」を選択し「スクリプト」に下記を記載して下さい。内容としてはaのテーブルを最初の32個のテーブルと、33個以降のテーブルに分けて、それぞれ引き算しています。これで32個分のカラムが一気に算出できます。「パラメータの入力」タブで「追加」を押して、aを定義します。「出力パラメータ」で計算したretを定義します。複数カラムありますので「タイプ」はテーブルにします。「実行」ボタンを押すと入力と出力のパラメータを設定する画面が表示されます。入力はaテーブルを渡しますので、カラムを選択して全カラムを指定して下さい。出力は元のaテーブルに結果カラムとして追加したいので「カラム」を選択してください。ちなみに別に結果テーブルとして保存したい場合は「データテーブル」を選択するとretというテーブルが新規作成されます。結果としてa.1(2)などの新規カラムが32個追加されていると思います。今回は簡単に引き算にしましたが、これ以外に様々な集計方法も設定できますし、カラムの並びも測定値32個、基準値32個だけでなく、偶数奇数並びの場合もR言語を少し変更すれば対応できます。スクリプトを記載する事でかなり柔軟なデータ変換が可能になります。単体でR言語を走らせることができます。実行速度はフリーRよりはるかに高速です。グラフを描画する機能は使用できないので、Spotfireの裏で動作するデータ処理エンジンとして使用してください。SpotfireへのR言語の実装方法をこちらにまとめましたので、ご覧下さい。Reserved.ツールバーへスキップログイン。