【KNIME】ノード紹介:Nominal Value Row Filter 〜欲しいカテゴリのrowを抽出したい〜
お盆休みですね。まったりと更新してきます。
さて、行(row)の抽出のために使うrow filterやrow splitterには結構色々な種類があります。これまでの記事では
-
Reference row splitter (紹介してないけど、これのfilter版もあるよ)
なんかを紹介しました。個人的には上記のsplitter2つをよく使います。
今回はより一段とお手軽な設定で、欲しいカテゴリのデータを抽出するときに活用できそうなノードを紹介します。
例題としては、
上記のようなテーブルから、"犬と猿"のデータを取ってこようと思います。
Nominal Value Row Filter
設定画面を見た方が早いと思うので、キャプチャを載せます↓
最初はすべての設定欄が空っぽです。まずカラムを選べと言われるので、今回は"種族"をプルダウンから選びます。
すると、赤枠のExcludedに種族にはどんな内容が含まれるか、重複を除去して列挙されるので、欲しいものを緑枠のIncludedに移動させて下さい。これで設定は完了です。実行してみます。
ばっちりですね。
以前に紹介した、Value Counter + Reference row splitter (filter)のコンボ技を1つのノードにしたような感じです。
どちらを使っても正解です!
処理時間に差が出るかもしれませんが、どちらも同じ結果にたどり着けます。各人の好みや、考え方によって色んなパターンのフローが出来上がると思います。
「こんな方法もあるよー」とか「こんな工夫ができる」とか、情報共有できる仲間が増えるといいなと思ったのも、ブログを書き始めた理由の一つです。
プログラミング界隈は沢山の記事があったり、gitで公開してたりするけれども、KNIMEに関してはあんまり見ないです。外国の方が作成したyoutubeとかもあるので参考にはするものの、英語もそんなに得意じゃないし…。
さて本題に話を戻して、私は数百万を超えるクラスのデータを扱うケースはそんなに無いので(多くても数十万。そんなに重くない)、基本的にはfilterよりもsplitterを採用して、除いたデータ内も覗けるにしています。なので、前述の方法ではfilterになってしまうのがお好みで無いわけです。私だったら次のようなフロー、設定にします。
冒頭で述べた通り、Row splitterを使います。正規表現を使って
猿|犬 (猿または犬)
という条件にします。正規表現を使っているのでregular expressionにチェックを入れます。これで実行すれば、先ほどと同じ結果になります。
選択肢がもっと多い場合には、そのリストを別途作成しreference row splitterを使いますね。ちなみに雰囲気としてはこんな感じ↓(詳細割愛)。
お盆休みの方も多いと思います。交通事故と体調不良には気をつけてお過ごし下さいい。