【KNIME】小ネタ:** to variableノードを使わない変数の作り方
ここ何回かの記事で、変数を使った内容を書きました。
-
【超入門】KNIMEで変数を使うには 〜今日の日付をエクセルのシート名にして書き出してみよう〜 - 非プログラマーのためのインフォマティクス入門。(仮)
-
【超入門】Loopを回せ! 〜KNIMEを使って複数のファイルを一気に読んでみよう〜 - 非プログラマーのためのインフォマティクス入門。(仮)
個人的には、変数に関しては「これが基本かな?」という方法を書きましたが、他にも何かしらの値を変数に指定する方法があるので、2つ紹介します。
Workflow内のどこでも使えるglobalな変数
この場合は、変数は固定値になりますが。
まずはKNIME explorerの中から、指定のflowを選び右クリックメニューを出します。今回の例ではtest10という名前のflowです。メニューの中にWorkflow Variables...というのがあるので、選択します。
次のような新たなウインドウが開くので、addを選びます。今回の例ではfix_valueという名前の変数を設定することにします。タイプは整数値、値は2として設定します。
入力が終わったらOKします。
これでおしまいです。このworkflow上では、どこでもfix_value(値は2)という変数が使えるようになっています。確認してみます。
以前にちょっと紹介したTable Creator使って、1から9が入っているテーブルを作りました。Tableというタブではなくて、Flow Variablesというタブを探して内容を確認すると確かにfix_valueという変数名で2という値を持っていることが分かります。
次のMath Formula(算術演算をするノード)の設定画面でも、変数fix_valueが使えます。とりあえず掛けてみます。
実行結果は次の通りです(確認するまでもないですが、一応)。
ノードの設定のために記述した内容を変数とする方法
見出しではちょっと分かりにくいですかね?次のキャプチャをご覧ください。
例ではExcel Readerを使って、私のdesktop上にあるtable1.xlsxというファイルを指定していますが、この際に記述した
/users/sumtat/Desktop/tabel1.xlsx
という文字列を変数にしたい場合にどうするか?というお話です(あんまり需要はない気もしますが…)。
こういった、table内の情報ではないものはTable row to variableなどのノードでは変数にすることができません。解決策としては、当該ノードの設定画面(今回の場合excel reader)のFlow Variablesタブを開きます。
既に変数となっている値をファイル名として指定する場合は、対応する部分のプルダウンを選択し、適切な変数を指定すればよかったわけですが、今回のような場合には、変数にしたい項目の右側の欄に、任意の変数名を記入することで対応します。例としてhogeという変数名を指定しました。
(なんかhogeとかすると、急にそれっぽい雰囲気がでる気がして、使ってみたかった)
では、実行した結果をみてみます。
ちゃんとhogeという変数名で、所望の内容を値として持っていることが確認できます。
私はあまり、今回紹介した方法を使う場面に出会っていませんが、知っておくとご利益があるかもしれません。
今回の話はイマイチ使えねーと言われそうなので、もう一つおまけをつけます。
Node Moniter
View > otherと選んでみてください。
するとshow viewというウインドウが開くので、Node Moniterを選択してみてください。
そうすると下のように、node monitorというエリアが出てきます。レイアウトがちょっと違う場合もあるかもしれませんが、ドラッグ&ドロップで好きな場所に移せます。
この画面を出しておいて、作業エリアのノードを選択すると、選んだノードに関する情報を確認することができます。
▽をクリックすることで表示内容を切り替えるメニューが出てきます。
「Excel readerは実行済みで、吐き出すtableの内容はこんな感じです。」というのを確認できます。表示メニューをshow variablesにしてみます↓
さっき設定した変数hogeとその内容が確認できます。
node monitorを出しておくと、いちいちoutput tableを開かなくても内容がある程度確認できるので、まあ便利と言えば便利です。
ここ数日、私の住んでいるところは8月にしては涼しいです。というか、夜とかちょっと寒いです。皆様、体調に気をつけてお過ごし下さい。私はやや具合が悪いです…。