KNIME・EXCEL倉庫

KNIMEやEXCELマクロの備忘録です。

KNIME

【KNIME】Column Aggregatorで集計したい

・複数の列からデータをとってきて集計したい場面がしばしばある。 ・Mathformulaを使えば可能だが、集計に特化したColumn Aggregatorを使えば、より簡単に目的の処理を実行できる可能性がある。 ・このノードでは、「どの列から」「どういう集計法で」デー…

【KNIME】String Inputをcomponent化して、ノードに変数を入力したい。

・ワークフローを作成していると、その都度ファイル名やファイルの場所を入力してflow variable化し、フローを回したくなることがある。 ・通常はノードの設定画面から弄れば良いが、なんとなくごちゃっとしていて、気持ち悪い。 ・少し弄っていると、String…

【KNIME】String Inputで簡単にflow variableを作りたい

・定まったFlow Variableを作成する際に、Table Creatorに変数を入力した後、Table Row to variableなどを使ってFlow varibaleにしていた。 ・調べてみると、String Inputというノード一つでFlow Varibaleを作成できるらしい。 こんな形で入力すると、 こん…

【KNIME】Moving Aggregationで積算値を計算したい。

・数値データの表を扱っている際に、積算値を算出したいことがある。 ・調べてみると、Moving Aggregationというノードで可能らしい(下図)。 ・Scoreの対応する行までを加算した積算値がSum(Score)列に入っている。 ・Moving Aggregationの設定は以下の通…

【KNIME】Loopを使わないデータ登録ワークフロー

・昔の記事で、JoinerとMergerをLoopして、元ファイルのデータを追加するワークフローに関して書いた。 ・ConcatenateとGroupByを利用すれば、Loopなしでもう少しシンプルに目的の処理を実行できそうなので、ワークフローを作ってみた(下図)。 ・流れは以…

【KNIME】Concatenateで表にデータを追加したい。

・表を縦にくっつけるConcatenateとデータを纏めるGroupByを使うと、表にどんどんデータを追加するワークフローを作ることができる。 ・例えば、会員IDが一意に決まっているとき、会員ID+名前の情報をどんどん追加する場合を考える。 ・以下の例の場合、あ…

【KNIME】Reference Column Resoterで列を指定の順番に並べ替えたい

・表の列を何らかの順番に並べ替えたいことがある。 ・Column Resorterでできるかと思ったが、どうもしっくりこない。 ・Column Resorterを使う過程で、Reference Column Resoterなる怪しげなノードを見つけた。 ・どうもこれでできるらしい。 ・Reference C…

【KNIME】たくさんのパラメータの関係を図示したい。

・たくさんの数値データがある際に、それらの関係がどのようなものか推察する必要がでることがある。 ・散布図を描く際に、いちいちやってられないので、マトリックスで一気に可視化したい場合がある。 ・そういう場合には、Scatter Matrixノードを使うと、…

【KNIME】UngroupでListをバラバラにしたい。

・先日、データをグループでまとめるノードGroupByに関して記事にした。 ・GroupByノードを出そうとすると、KNIME検索でUngroupなるノードが引っ掛かった。 ・このノードは、List形式のセルをバラバラにして、縦にずらっと並べるノードらしい。 ・例えば、Gr…

【KNIME】Groupbyでデータを集計したい。

・共通項のあるデータを集計したり、重複を潰すのに、Groupbyというノードを使えば便利らしい。 ・使い方をメモしておく。 ・以下の表からデータを集計してみる。 ・例えば、各家庭(姓)の一番上に挙がっている名前(名)を代表者として、各家庭の平均年齢…

【KNIME】表全体でString Manipulationしたい。

・たくさん列のある表全体に対して同じString Manipulationの処理を実行したい時がある。 ・String Manipulationは、1つの列に対してしか機能しないので、Loopを使って列を一つ一つ処理していく必要がある。 ・例えば、表中の「田中」を「鈴木」に変換するW…

【KNIME】workflow内で使えるflow variableを設定したい。

・workflowを組んでいると、ユニバーサルに使える変数を設定したくなることがたまにある。 ・workflow内で使用できるflow variableの設定方法があるので、残しておく。 ・KNIME Explorerでworkflowファイルを右クックし、Workflow Variablesというのを選択す…

【KNIME】Flow Variablesの右のボックスは何か。

・Flow Variablesの右の方にあるボックス(下図のプルダウンメニューの更に右にある白いボックス)は何に使うのか? ・試したところ、Flow Variableを出力するためのボックスであり、対応するFlow Variableに名前を付けて出力する機能があるらしい。 ・Table…

【KNIME】Table Column to VariableとTable Row to Variableを覚えたい

・KNIMEでflow variableを扱う際に、Table Creatorで適当に表を作り、Table Column to Variable又はTable Row to Variableで変数化することがある。 ・何故か2分の1以上の確率で間違うので、記事にしておく。 ・適当に表を作って、それぞれで変数化した(下…

【KNIME】ファイルの情報を抽出したい

・ファイルの管理をする際に、ファイルのサイズや更新日時の情報を得たい場合がある。 ・Files/Filders Meta Infoというノードでそれができる。 ・情報を得たいファイルのパス情報を入力すると、ファイルのサイズ、最終更新日時、作成日時などの情報を出力し…

【KNIME】ファイルを動かしたい

・KNIMEでファイルを削除、コピー&ペースト、移動させたい。 ・削除する時⇒Delete Files/Foldersノードを使う。 ・例えばファイルを削除したい時は、ModeをFileにして、ファイルのパスを入力する。 ・ファイルのパスを変数で制御すれば、削除するファイルを…

【KNIME】chunk loopを使ってみたい

・Table Row To Variableを使うと、表を変数化して上の行から順番に渡すループを作ることができる。 ・変数化しなくて良いから、順番に数値を渡して欲しいと思う操作があった。 ・調べてみると、Chunk Loopというやつがそういうことをできるらしい。ちなみに…

【KNIME】writerを繰り返したい

・"Excel Writer"などの出力系ノードは、その先がない。 ・ループする際は、ループしたい領域をLoop StartとLoop Endで挟むが、Writer系のノードを繰り返したい場合はどうすれば良いか? ⇒ Loop Endで作った表は無視して、Loopで挟んだ領域からWriterを生や…

【KNIME】Matrix形式の表をList形式に整形したい。

・人間がデータを俯瞰する際には、Matrix形式の表(あくまでイメージだが、2つの従属変数、1つの目的変数に対して、従属変数の1つを縦に、もう1つを横に、目的変数を値として展開した表)で表現すると見やすい。 ・一方で、データベースなどを取り扱う際には…

【KNIME】Create Collection Columnでセルを纏めたい

・例えば、表から列を抽出する際に、"Column Filter"をよく使う。 ・flow variableで抽出する列を操作する場合に、ひとつの列を抽出するだけなら、適当に表を作成して"Table Row To Variable"ノードで変数化すれば良い。 ・複数の列を抽出したい場合はどうす…

【KNIME】特定のフォルダ中のすべてのEXCELファイルのすべてのEXCELシートを纏める

・いろいろな人が、同じフォーマットでEXCELシートのレポートを作成し、それが一つのフォルダに無造作に放り込んであるとする。 ・特定のフォルダ中のすべてのEXCELファイルのすべてのEXCELシートを纏めるワークフローを作りたい。 ・ついでに、データのソー…

【KNIME】enforce exclusionとenforce inclusion

・"column filter"などのノードの設定ウィンドウで、enforce exclusionとenforce inclusionを選ぶラジオボタンがある。 ・基本的に何も弄らずデフォルト(enforce exclusion)を使っていた。 ・元のデータが変わる際にエラーの原因になるようなので、忘れな…

【KNIME】データ登録ワークフロー(Loop)

・データ登録ワークフローでは、"Column Merger"を追加したいデータの種類(列数)の分だけ用意しなければならなかった。 ・追加したいデータの種類が登録するたびに変わったり、多くの種類のデータを一度に登録したい場合、このやり方には限界がある。 ⇒ Lo…

【KNIME】Flow VariableでColumn Filter

・Column Filterで表から列を抽出(又は除外)する際に、Flow Variableで列名を指定したい。 ・例えば、左下の表からVariables 1(a)という名前の列を抽出する場合、以下のように組むことがある。 ・この際に、単純に"Column Filter"の"Flow Variables"で”i…

【KNIME】データ登録ワークフロー

・キーとなる変数のリストを得た後に、順次データを追記する場合を考える。 ・例えば、キーとなる変数のリストとして、以下の表が与えられたとする。 ・First NameとLast Nameをキーに人物を一意に定義し、後からBirthplace、Age及びAnnual Incomeの情報を追…

【KNIME】Column Mergerのいろいろ

・"Joiner"でくっつけた列を統合し、すっきりさせたい。 ・列をまとめるには"Column Merger"を使うが、設定に少し癖があるので、メモしておく。 ・今回統合したい表↓。score(#1)列のデータを、score列にまとめたい。ただし、Group bのID2のデータがそれぞれ…

【KNIME】joinerのいろいろ

・キーとなる列の値を使って、2つの表をくっつけるのが"Joiner"ノード ・くっつけ方にもいろいろ癖あるので、メモしておく。 ・今回は、上の表に下の表をくっつけるだけのワークフローを考える。 ・上の表 ・下の表 ・GroupとIDの両方をキーに、2つの表を…

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

・"Row Filter"などのノードを使う際に、条件に合うものすべてを選択する(又は除外する)という必要が出る場合がある。 ・そのようなケースで便利なのが、ワイルドカードと正規表現。 ・ワイルドカードは、どんな対象文字列でもマッチする代わりになる記号…

【KNIME】特定のEXCELファイルの特定のシートを読み込む

・一つのEXCELファイルの中に、データを収集したいシート以外のデータが入っていることがある。 ・この場合、EXCELファイルのすべてのシートをループで読み込んでは都合が悪い。 ⇒ データを読み込むシートを絞り込む必要がある。 ・例えば、4枚のシート「1_…

【KNIME】特定のEXCELファイルのすべてのシートを読み込む

・特定のEXCELファイルの特定のシートを読み込みたいなら、"Excel Reader"ノード内で指定してやれば良い。 ・EXCELファイルを指定するだけして、ファイル中のシートをすべて読み込むにはどうすれば良いか? ⇒ シート名を変数化し、Loopで順番にすべてのシー…