月と指標の組み合わせが列になっている横長のデータを縦長に整形する方法

今回は、顧客の購買データを使用します。

このデータでは、売上(Sales)の列が月ごとに分かれています。

また、売上だけでなく購買数(Quantity)の列も月ごとに分かれています。

つまり、売上(Sales)と購買数(Quantity)という2つの値が月ごとに分かれているワイド型のデータとなります。

今回は、この月と指標の組み合わせが列になっている横長のデータを縦長に整形していきます。

そのためには、下記のステップが必要になります。

  1. 月と指標の組み合わせごとに列がある横長のデータ(ワイド型)を縦長のデータ(ロング型)に変換する。
  1. キー列に指標と日付の値がまとまっているので、指標と日付を別々の列に分割する。
  1. 複数の指標が一つの列にまとまっているので、指標ごとに列を分ける。

それでは、月と指標の組み合わせごとに列がある横長のデータを縦長のデータに変換していきます!

Customer ID以外の売上と購買数の列をShiftキーを使いながら全て選択し、ワイド型からロング型へ (Gather) を選び、選択された範囲を選択します。

ワイド型からロング型へのダイアログが表示されるので、そのまま実行します。

売上と購買数の全ての列をまとめてロング型のデータにすることができました。

ここで、一つ問題があります。

ロング型にするとキー列の列名が値となります。 元々「売上+日付」といった列名だったため、一つの列に2つの値がまとめられていることになります。

そのため、タイプ(売上、購買数)の列と、日付の列に分割したいです。

キー列から分割を選び、 …で列に分割を選択します。分割する際の区切り文字にはスペースを選択します。区切り文字はお手持ちのデータに合わせてお選びください。

列を分割のダイアログが表示されます。

新しい列名にTypeとDateを入力して実行します。

タイプ(売上、購買数)の列と、日付の列に分割することができました。

しかし、また問題がでてきました。

サマリ・ビューからタイプの列を確認すると、一つの列にSalesとQuantityがまとめられています。

売上と購買数のように全く異なる値を持つものは別々の列にする必要があります。

そのため、売上の列と購買数の列を作りたいです。

Macの場合はCommandキー、Windowsの場合はCtrlキーを押しながら、TypeとValueの列を選びます。

次に、列ヘッダメニューからロング型からワイド型へ(Spread) を選択します。

ロング型からワイド型へのダイアログが表示されるので、そのまま実行します。

これにより、売上と購買数の列をワイド型からロング型に変換することができました。

Dateの列を見てみると、データタイプがcharacter型になっています。そのため日付け型に変換します。

Dateの列ヘッダメニューからデータタイプを変換を選び、Date(日付) / POSIXct(日付時間)タイプに変換を選択します。 次に、今回は年と月しかないため、Year, Monthを選択します。

計算を作成のダイアログが表示されるので、そのまま実行します。

これで、日付型のデータにすることができました。

それでは、チャートを作成してみましょう。

チャートビューをクリックします。

チャートのタイプには箱ヒゲ図を選択します。

X軸には購買数(Quantity)を選び、Y軸には売上(Sales)を選択します。

当たり前かもしれませんが、購買数が上がると売上も上がるという関係性があることがわかります。

今回のように、月と指標の組み合わせごとに列がある横長のデータを、指標ごとに縦長のデータにすることで、可視化する際に列にそれぞれの指標を割り当てていくことができます。