KNIME・EXCEL倉庫

KNIMEやEXCELマクロの備忘録。

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

・キーとなる変数のリストを得た後に、順次データを追記する場合を考える。

・例えば、キーとなる変数のリストとして、以下の表が与えられたとする。

f:id:choron81:20210306231557p:plain

 ・First NameとLast Nameをキーに人物を一意に定義し、後からBirthplace、Age及びAnnual Incomeの情報を追加していくイメージ。

・ついでに、Jiro Tanakaには妙な情報が入り込んでおり、後から追加するデータで上書き修正できるようにしたい。

 

・追加するデータは、以下の表である。

f:id:choron81:20210306232012p:plain

 

・最終的には以下の表になって欲しい。

f:id:choron81:20210306232151p:plain

 

・組んだワークフローは以下の通り。

f:id:choron81:20210306232312p:plain

・"Joiner"の"Left Outer Join"でキー変数リストに登録情報のリストをくっつける。

この際に、"Joining Columns"に2つのキー変数を指定する(今回はFist NameとLast Name

・"Joiner"でくっつけた後は、キーが適合した行が勝手に上に来てしまう。

順番が乱れるので、最初のキー変数リストの順にデータを並べ替える

 

・”Sorter”の後の時点で、結合したデータのかぶった列名は、上の表のデータはオリジナルのものとして、下の表のデータはコピーとしてくっついたようになる(列名(#1)のようになる)。

f:id:choron81:20210306233053p:plain

⇒ オリジナルの列にコピーの(#1)列を統合すべく、"Column Merger"を設定。

⇒ ただし、データとして優先的に残すのは後から追加したコピーの分なので、"Primary Column"には(#1)付きの列、"Secondary Column"には(#1)のない元の列を指定する。

⇒ さらに、最終的に残したい列は(#1)のない元の列なので、"Output Placement"は"Replace Secondary Column"を指定する。

⇒ 一度に統合できるのは1つの変数だけなので、3つの変数であれば3回統合する(Birthplace、Age及びAnnual Income)。

 

・3回目の統合後、(#1)列が3つ残ってしまうので、"Column Filter"で(#1)を含む列以外を抽出

f:id:choron81:20210306233705p:plain

⇒ 抽出には正規表現を用いて、^(?!.*(#1)).*$と記載した。

 

・ワークフロー

drive.google.com

・動作不良、その他不利益に関して、当方は一切補償しない。

 

終わり。