# クロスJoinを行う方法

このノートでは2つのデータフレームを利用してクロスJoinを行う方法を紹介します。

例えば、上記のように1行が一意な値になっているような2つのデータフレームを使って、クロスJoinを行うと全ての値の組み合わせを持つデータを作ることが可能です。

データ

今回は以下のような2つのデータフレームを使います。

製品テーブル

色テーブル

1. ダミーの結合キーを両者のデータフレームに作成する

今回の2つのデータには共通するキーが存在していないため、今のデータのままでは、結合のしようがありません。

そこでクロスJoinを行うときは、全ての列に同じ値が入ったダミーの列をそれぞれのデータフレームに追加し、それらのダミーのキー列を利用して、左外部結合(Left Join)を行います。

そこでまずは製品のデータフレームにダミーの結合キー列を追加します。

任意の列ヘッダーメニューから「計算の作成(Mutate)」を選択します。

計算の作成(Mutate)ダイアログが表示されたら、任意の数字ないしは、文字をタイプします。(今回は数字の「1」をタイプしています)

このとき、新しく列を作成にチェックを付けて任意の列名を設定し、実行します。

ダミーのキー列が作成できました。

全く同じ処理を色のデータフレームでも行いため、ダミーのキー列を追加したステップをコピーします。

ステップがコピーできたら、色のデータフレームに移動し、ステップを貼り付けます。

色のデータフレームにもダミーのキー列を追加することができました。

2. ダミーの結合キーを利用して左外部結合(Left Join)を行う

2つのデータフレームにダミーのキー列を追加することができたので、製品のデータフレームに移動して、「dummy_key」の列ヘッダーメニューから「結合(列を追加する/Join)」を選択します。

結合タイプに「左外部結合(Left Join)」を選択し、結合先データフレームを選択し、実行します。

なお今回、ダミーのキー列は、2つデータフレームで同じ列名になっているので、自動的に結合先のキー列は選択されます。

製品と色の全ての組み合わせを作成することができました。

3. 不要な行を削除する

最後に不要なダミーのキー列を削除します。

ダミーのキー列のヘッダーメニューから、「列を選択/削除」を選択します。

列を選択のダイアログが表示されたら、取り除くにチェックを付けて 実行します。

不要な列を取り除き、全ての製品と色の組み合わせを作成することができました。