いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【KNIME】ワイルドカードと正規表現

・"Row Filter"などのノードを使う際に、条件に合うものすべてを選択する(又は除外する)という必要が出る場合がある。

・そのようなケースで便利なのが、ワイルドカード正規表現

 

ワイルドカードは、どんな対象文字列でもマッチする代わりになる記号のこと。

・トランプの大富豪のジョーカーのようなイメージ。

・*と?があるらしい。

*は任意の文字数、?は任意の一文字を表すワイルドカード

・例えば、コレ↓から、"Row Filter"で行を抽出することを考える。

f:id:choron81:20210304215009p:plain

ワイルドカードチェックボックスにチェックを入れて、*aでフィルタリングすれば、a、aa、bbaa、jhaが含まれることになる(「0文字以上の任意の文字列」a)。

・?aでフィルタリングするとaaがヒットする(「1文字の任意の文字列」a)。

・??aでフィルタリングするとjhaがヒットする(「2文字の任意の文字列」a)。

 

正規表現も文字列を記号で表現し、パターンに合うものを含めたり除外したりするのに使う手法。

ワイルドカードより複雑で細かな表現が可能

ワイルドカードのように、任意の文字(列)を表現することだけではなく、繰り返し、いくつかの特定の文字(列)のうちどれか、文字の桁数の表現なども可能。

・表現の種類が結構多いので、「正規表現」でググって確認しながら使うと良い。

 

終わり。

 

 

 

【KNIME】表の情報を抜き出す

・表の情報を抜き出したいことがしばしばある。

 

【表の行列数を抜き出す】

・"Extract Table Dimension"というノードを表のあとにくっつける。

・"Number Rows"で〇行、"Number Columns"で☆列の行列であることが分かる。

データ数を抽出したり、ループ回数を設定する際にちょっと便利

 

【変数(列)の情報を抜き出す】

・"Extract Table Spec"というノードを表のあとにくっつける。

・列の名前、データ型、何列目か(Column Index)、数値であれば最小値と最大値を出してくれる。

 

【列名を抜き出す】

 ・"Extract Column Header"というノードを表のあとにくっつける。

・列の名前だけを抜き出してくれる。

列の名前を変数として使用する際に便利

・ちなみに、列名を変更する際は”Column Rename”というノードを使う。

 

【行名を抜き出す】

・"RowID"というノードを表の後にくっつける。

・このノードは、行名を変更する機能行名を抽出する機能がある。

・デフォルトは行名を変更する機能がONになっているみたい。

 

【基本統計量を求める】

・"Statistics"というノードを表のあとにくっつけると、各列ごとの基本統計量をまとめて求めることができる

・ついでに、簡単なヒストグラムも表示できる。

個別の統計量なら"Groupby"ノードの方が良いかも

 

終わり。

 

【KNIME】ワークフローを纏める

・いろいろなノードを組み合わせてワークフローを作ると、ごちゃごちゃしがち。

・たくさんのノードを前止めて一つのノードにする"metanode"という機能がある。

 

・ウインドウ左上の緑のプラスマークをクリックすると、metanodeを選べる。

f:id:choron81:20210228222456p:plain

・ポートの設定などがいろいろあり、カスタマイズも可能。

f:id:choron81:20210228222612p:plain

 

・実務上は、ガサっとワークフローを組んでから、纏めたいノードを選択し、右クリックしてmetanode化してしまう方がたぶん楽

 

f:id:choron81:20210228223036p:plain

f:id:choron81:20210228223229p:plain

こうなる。

・metanodeのポートは勝手に生成される。

・metanodeを解消(まとめる前の状態)するには、metanodeを右クリックして、Expandする。

 

終わり。