Exploratoryでは以下計算において、「カスタム」の計算を使ってカスタマイズした集計の計算を実行できます。
内部的に集計を行うチャート
集計(Summarize)ダイアログ
そこで、このノートでは、カスタムの計算の使い方について説明します。
今回は1行が1つの注文明細を表していて、列には、売上のあった 国、金額、その他の注文情報が入ってます。
ピボットテーブルを使用すると、以下のように各国の売上額の合計を表示できます。
今回、集計した売上が消費税を含む売上になっているため、消費税が加算される前の売上額の合計を表示したかったとします。
このようなときには、カスタムの計算を使うことで、データを加工することなく、チャート上で計算が可能です。
まず、2つの目の値に「カスタム」を選択します。
すると、カスタムの計算のダイアログが開きます。
計算式のフィールドには、R言語を使って様々な計算式を書くことができます。
今回は、10%の消費税が加算される前の売上額の合計が知りたいので、すべての売上値を合計して、それを110%(1.1)で割ればいいことになります。計算式は次のようになります。
sum(売上, na.rm=TRUE) / 1.1
上記の計算式の中で利用しているna.rm
の引数についてはこの後の「ルール」のセクションで紹介いたします。
計算式が完成したら、OKボタンをクリックしてください。ピボットテーブルに新しい列が表示され、10%の消費税なしの売上額の合計が表示されます。
集計ダイアログでカスタムの計算を使用するには、値で実際の列の代わりに 「カスタム」 を選択します。
すると、カスタム計算のダイアログが表示されますが、計算のダイアログの使い方は、上で説明したチャートの場合と同じです。
上記の計算式の中で利用しているna.rm
の引数についてはこの後の「ルール」のセクションで紹介いたします。
計算式には2つの重要なルールがあります。
na.rm=TRUE
の引数を設定しないと欠損値が返るたとえば、次の式を考えてみます。
売上 / 1.1
売上列は各注文の売上値のリストなので、この計算では、10%の税が適用される前のそれぞれ注文ごとの売上値のリストを表示します。
しかし、カスタムの計算は1つの値を返す必要があるため、以下のようにエラーが返ります。
na.rm=TRUE
の引数を設定しないと欠損値が返るチャートやピボットテーブルでカスタム計算を使用する際、集計対象のデータに欠損値が含まれていると、後述する集計関数を利用するだけでは、計算結果が表示されないことがあります。
これは欠損値(N/A)が含まれていると、集計関数を使った計算結果が、欠損値(N/A)になるというデフォルトの動作によるものです。
そのようなときには、集計関数の中で、na.rm=TRUE
という、欠損値を集計から除外する引数を指定することで、欠損値を除外したうえで集計結果を返せます。
なお、前述の引数のna
は欠損値、rm
はremove(除外)するの略語となります。
そのため、特別な理由がない限りは、カスタム計算の利用時にはna.rm=TRUE
を利用することをおすすめいたします。
詳細につきましては以下のリンクをご参考ください。
以下は集計テーブルやピボットテーブルのカスタム計算にてよく使用される関数のリストです。
計算例にあるsum(売上)などの括弧の中は全て列名になります。
関数名 | 概要 | 計算例 |
---|---|---|
sum | 合計を計算する | sum(売上) |
mean | 平均を計算する | mean(売上) |
max | 最大値を計算する | max(売上) |
median | 中央値を計算する | median(売上) |
min | 最小値を計算する | min(売上) |
first | 最初の値を返す | first(売上) |
last | 最後の値を返す | last(売上) |
mode | 最頻値を返す | mode(売上) |
n | 行の数を返す | n() |
n_distinct | 一意な値の数を返す | n_distinct(User_Id) |
カスタムの計算で行の数”を参照したときには、n()
という関数を使います。
たとえば、「売上」列と「マーケティング」列の差を行数で割り算した結果を表示したい場合、カスタムの計算の定義は以下のようになります。
sum(売上 - マーケティング費用) / n()