「レコード結合」ノード

 「レコード結合」ノードは、2つ以上のデータを特定のフィールド(変数)をキーにして結合するときに使います。 

下記の2つのCSVデータを例にしてご説明します。

 

これらは商品ごとの値段のデータ(price.csv)と発売年のデータ(year.csv)を想定しています。

 


 

ノードは下記のように配置します。

 

 

 

下は、「レコード結合」ノードの設定画面です。

結合の方法を4種類の中から選ぶことができます。

 

 

 

 

内部結合

 

内部結合は、両方のCSVで、結合キー(ID)が一致するレコードだけを取得する結合方法です。

この場合、下のように出力されます。

 

 

値段は、元のcsvには下記4商品についてレコードが

存在しました。

 【price.csv:1,2,3,5

一方、発売年については、下記3商品について

レコードが存在しました。

 【year.csv :1,2,4

内部結合では、両方に共通してIDが存在するレコードを取得しますので、下記2つが出力されます。

 【内部結合後→1,2

 

 

 

完全外部結合

 

内部結合での結果に加えて、どちらかのCSVにしか存在しないレコードも取得するのが完全外部結合です。

完全外部結合では下のようになります。

 

元の各csvファイルのIDは下記です。

price.csv:1,2,3,5

year.csv :1,2,4

 

結合後のIDは下記となります。

【完全外部結合後→1,2,3,4,5

 

ID35は片方のcsvにしか存在しないため、取得できないデータ(欠損値)が発生します。

Modeler上では、欠損値は「$null$」と表示されます。

 

 

部分外部結合

 

選択したCSVのレコードをすべて取得するのが、部分外部結合です。

部分外部結合では、下記のような選択画面が表示されます。

 

 

price.csvを選択すると、price.csvに含まれるすべてのレコードが取得されます。

この場合、year.csvにもIDが存在するレコードには、yearの値が入り、それ以外は欠損値となります。

 


元の各csvファイルのIDは下記です。

price.csv:1,2,3,5

year.csv :1,2,4

 

結合後のIDは下記となります。

【部分外部結合後→1,2,3,5

 

 

 

 

逆結合

 

逆結合では、メインのCSVにのみ存在するレコードが取得されます。

メインのCSVは、「入力」タブで確認できます。

最初に「レコード結合」ノードにつながった方がメインとなりますが、この画面の順序を変えることで変更することもできます。

 

上記の設定では、下記のように出力されます。

元の各csvファイルのIDは下記です。

price.csv:1,2,3,5

year.csv :1,2,4

 

結合後のIDは下記となります。

【逆結合後→3,5