-->

【KNIME】(ナイム)Joiner(ジョイナー)の使い方!【2つのデータを1行にまとめ、2つの表データを一つに統合する!

2022/04/30

Knime

t f B! P L

・この記事の概要

KNIME(ナイム)のJoiner(ジョイナーを解説。
2つの表を1つにまとめるノード。
共通の項目を抜き出して同一の行にまとめることができる。



まえがき

どうもシャイン社員です!
最近記事の執筆スピードが遅くなってしまいまして…
若干モチベダウン気味です。。
ここが踏ん張りどころだと思って頑張ります!!

記事の内容がお粗末になっているかもしれませんが、ご容赦を…
それでは今回はKNIMEのJoinerについて解説します。

何をしたいとき使うの?Joinerの使い方

Joinerの使用目的、用途ですが
共通の項目、値に基づいて2つの表を1つに統合するノードです。

エクセルでいうところのVLOOK UP関数と似た使い方が可能です。

Joinerノードは下記のように
INPUTポートが2つ、OUTPUTポートが3つあります。
それぞれのINPUTポートは「Top input」と「Bottom Input」
OUTPUTポートは「Join result」「Left unmached rows」「Right unmached rows」
となります。


基本的にはOUTPUTポートは「Join result」のみしか使いません。

2つの表から共通する項目を抜き出し、1つの表に統合する。

共通の項目、値に基づいて2つの表を1つに統合するノードです。
エクセルでいうところのVLOOK UP関数と似た使い方が可能です。

今回は例としてTable 1とTable 2の2つの表を準備しました。
Table 1


Table 2

Table 1には学籍番号と国語、数学、英語のテストの点数が書いてあります。
Table 2には学籍番号と苗字(性)、名前(名)が書いてあります。

これらの表を組み合わせて下記のように
苗字(性)、名前(名)と学籍番号と国語、数学、英語を組み合わせた表
下記のように作成しようと思います。




Joinerノードの接続方法

下記のようにノードを接続します。
Table1 / Table 2の接続先は上下が逆でもOKです。



Joinerの設定(Configure画面)

Joinerは基本的に設定をしないとうまく動作しません。
Configure画面は以下になります。


設定の内容を説明していきます。

All of the following:全ての条件に当てはまる場合のみMatch
Any of the following : どれかに1つの条件に当てはまる場合にMatch

Add matching criterion
ここを入力データ(Table1 と Table2 )のカラムを選択する画面になります。
ここで選択したカラムの同一の値を持つセル同士を1行に表示できます。

Add matching criterion を押すと下記のようにTable 1 Table 2からそれぞれ
任意のカラムを選択します。
選択したカラム同士で同じ値を持つ行を結合します。




 

列の抽出方法を設定する

Include in output
ここで出力ポートのJoin resultに出力するデータの内容を選択します。


Matching rows (Inner join) ​

両方の円が被る紫のエリア​
Table 1 とTable 2 の両方に含まれる学籍番号のみを選出して​
同一の行に結合して表示する。​




Left unmatched rows (Left antijoin)

左片方の円の青色エリア​
Table 1 に含まれる学籍番号のみを選出する。​
Table 2 には該当するデータはないため姓/名は​
欠損値である「?」が入力される。






Right unmatched rows (Right antijoin)

右片方の円の赤色エリア​
Table 2 に含まれる学籍番号のみを選出する。​
Table 1 には該当するデータはないため国語、数学、英語​
の点数は欠損値である「?」が入力される。





出力するカラムを取捨選択する

Column Selection

ここの画面で出力に含ませるColumn(列名)を取捨選択できます。
ここはColumn splitterやColumn FilterのConfigure画面と似ていますね。

その他のあまり使わないオプション

Split join result into multi tables ( top = matching rows, middle = left unmatched rows , bottom = right unmatched rows)

これにチェック入れると「Join result」以外の出力ポート
「Left unmached rows」「Right unmached rows」からもデータが出力されます。

出力される内容は上記で説明した
Left unmatched rows (Left antijoin)Right unmatched rows (Right antijoin)
のデータが出力されます。

あらかじめInclude in outputの設定で
Left unmatched rows (Left antijoin)Right unmatched rows (Right antijoin)
を選択した場合のみここにデータが入ります。

Row Keysの
Concatenate original row keys with separator ___
1つのRow(行)にまとめた際のRow ID名の付け方を設定できます。
デフォルトではTable1RowID _Table2RowID
のようにアンダーバーを介してくっつけて名前付けされます。


参考サイト

こちらのサイトを参考にJoinerの動作を解説しました。

今回はJoiner を紹介したいと思います。スーパー基本操作に関しては過去記事【超入門シリーズ(全3回)】に書いてみました。必要に応じて参照いただければと思います。 【超入門(1/3)】KNIMEの使い方 〜エクセルファイルを読んでみよう(Excel Reader)〜 - 非プログラマーのためのインフォマティクス入門。(仮) 【超入門(2/3)】KNIMEの使い方 〜欲しい行だけ抽出しよう(Row filter, splitter)〜 - 非プログラマーのためのインフォマティクス入門。(仮) 【超入門(3/3)】KNIMEの使い方 〜エクセルファイルとして書き出してみよう(Excel Writ&

あとがき

いかがでしたでしょうか?
エクセルではVLOOKUP関数を使う途端に構成が複雑になり
何をしているのか理解するのが困難になります。

KNIMEのJoinerではデータを非破壊で編集し、Configure画面を見ることで
分かりやすく処理の内容を追うことができるので、この辺りもKNIMEを使うメリットだと感じています。




このブログを検索

注目の投稿

【KNIME】(ナイム)最強の表計算マクロソフト!KNIME(ナイム)のご紹介!使い方は?できることは?

この記事の概要 KNIME(ナイム)は表計算、マクロ動作を主機能とするフリーソフト。 エクセルと同等の機能を有しており、行列計算やグラフ描画可能。 ノードと呼ばれる箱を線で繋ぐことで計算処理を行う事が出来るため 関数名などを覚える必要はなく、処理の内容が分かりやすい。 Pytho...

スポンサー広告

スポンサー広告

QooQ