いろいろ倉庫

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

【KNIME】ポートを増やしたい。

・前のノードからデータなどを受け取るポート(黒三角とか)は増やせることがある。

・Appender系のノードやReader系のノードは対応していることがある。

 

・Column Appenderの例

f:id:choron81:20210228220451p:plain

左下の「・・・」マークをクリックすると、Column Appenderの場合は、"Add input port"という選択が出てくる。これを選択すると、ポートが増やせる。

f:id:choron81:20210228220736p:plain

・削除は同様に「・・・」をクリックして"Remove input port"を選択すれば良い。

 

EXCEL Readerなどは、そもそも受け手のポートが用意されていないが、「・・・」がある。

f:id:choron81:20210228221046p:plain

・選択すると、データ受け渡し用のポートではなく、"File System Connection port”(青四角のポート)が出てくる。

 

・Column Appenderをいくつも連ねて表を結合する必要はないみたい。

 

終わり。

 

 

【KNIME】データ型

・KNIMEでデータを渡したり、変数として指定する際に、データの型を用途に合わせる必要がある。

 

【よく使うデータ型】

・string:文字列。汎用性が高い。空欄とかもデフォルトで文字列と解釈される。

・integer:数字(整数)。Javaだと32ビットなので、だいたい±2^31。±20億くらい?

・double:数字(少数とかの実数全体)。

・long:数字(桁数の多い整数)。Javaだと64ビットなので、だいたい±2^63。

・Date&Time:日時。

・boolean:true/falseもしくは1/0。基本的に変数として使うっぽい。

・path:ファイルパスのための型。基本的に変数として使うっぽい。

・他にもarrayとかの型があるらしいけれど、今のところ普段使いはしていない。

 

【Tips】

・それぞれの変数名や関連語でNode Repositoryを検索すると、相互変換するノードが出てくる。

EXCEL Readerとかで特に、Consoleに「データ型があってないんですけど!?」というエラーが良く出る。TransformationのEnforce Typesのチェックを外すとエラーが減る。

・最終的に型を定義する必要が出た場合は、Column Auto Type Castノードを挟むと、自動で型を判別して振ってくれるので便利

 

終わり。

【KNIME】ノードのいろいろ

・ノードの名前が英語で今一つ覚えられない。

・よく使うノードを、用途別にまとめたい。

 

【ノードの検索】

左下にある"Node Repository"ってところにある虫眼鏡のところでノードを検索できる。

f:id:choron81:20210227235105p:plain

⇒ ノードの種類があまりに多くて目視で探せないので、検索できるのはとても便利。表に関するノードを検索したければ、"table"とか打つと名前に"table"が入っているノードがずらっと出てくる。簡単なネーミングのノードならこれで見つかりそう。

 

【表操作】

・適当な表を作りたい ⇒ Table Creator

・適当な表(csvとか)を読み込みたい ⇒ File Reader

EXCEL表を読み込みたい ⇒ EXCEL Reader

・表の行数&列数を確認したい ⇒ Extract Table Dimension

・行列を入れ替えたい ⇒ Transpose

・特定の列を抜き出したい ⇒ Column Filter

・特定の行を抜き出したい ⇒ Row Filter
・表を縦にカチ割りたい ⇒ Column Splitter

・表を横にカチ割りたい ⇒ Row Splitter

・cellを縦に引き裂きたい ⇒ Cell Splitter

・行のIDを抽出したり変更したい ⇒ RowID

・列の名前を抽出したい ⇒ Extract Column Header

・列の名前を変更したい ⇒ Column Rename

・ピボットテーブル操作をしたい ⇒ Pivoting

・ピボットテーブル操作を元に戻したい ⇒ Univoting

・縦に表をくっつけたい ⇒ Concatenate

・横に表をくっつけたい ⇒ Joiner

 

【型の変更】

・KNIME(に限らずプログラミング)は型のエラーが出やすい。

・文字列や数字の型を指定するには、型を変換して揃えてやる必要がある。

・例えば、何らかの数字を文字列に変換するには、"Number To String"というノードを使う。

・だいたい、"変換前の型 to 変換後の型"というイメージ。

空白はデフォルトで文字列として認識される

”Column Auto Type Cast”はcellの中身から、型を自動判別してくれる。空白と数字が混ざった表を読み込む際は大事

 

【文字列操作】

・"String Manipulation"というノードで、文字列を編集できる

・これで編集できるのはあくまで文字列のみ

・数字とかを入れ込みたい場合は、このノード中でstring()関数を使って文字列化する必要がある

 

【数字操作】

・"Math Formula"というやつでいろいろな計算ができる。

・"String Manipulation"の計算版。

いずれのノードもcellを対象としたノードであり、列を対象にしたい場合は、(Multi Column)というやつにする

 

【変数操作】

・列や行などを変数化する。

・"variable"で検索するといっぱい出てくる。

 

【繰り返し操作】

・"Loop"で検索するといろいろ出てくる。

・通常の"Loop"は「くるくる処理が回る」というよりも、「同じ処理を繰り返す」イメージの方が近い

「くるくる処理が回る」のは、"Recursive Loop"というやつ

 

【その他】

・何らかのキーでまとめたいなら"Groupby"

 

まだまだ思いつきそうなので、随時追加。

 

終わり。