今回は、家具の売上データを使用していきます。
家具の製品カテゴリーは4種類あります。
今回は、文字列にTableが含まれるカテゴリーの売上合計を国ごとに求めたいとします。
例えば、売上合計を求める場合は下記のようにsum関数を使います。
sum(Sales)
次に、ExploratoryやRでは、列名の後に角括弧[]と中に条件式や関数を入れることで 値を絞り込むことができます。
sum(Sales[<条件式>])
これを応用することで、例えばカテゴリーがTableの売上合計を求めるには下記のような式になります。
sum(Sales[Category == "Table"])
では、文字列にTableが含まれるカテゴリーの売上合計を求めるにはどうしたらいいのでしょうか?
そこで、str_detect
という便利な関数があります。このstr_detectを使うとTableという文字が含まれている場合に値にTRUEを返してくれます。
そして、str_detect関数は下記のように記述されます。
str_detect(列名, 特定の文字)
この関数を応用することで、文字列にTableが含まれるカテゴリーの売上合計を求めることができます。
sum(Sales[str_detect(Category, "Table")])
それでは、Exploratoryで試してみましょう!
Countryの列ヘッダメニューから集計 (Summarize)を選択します。
集計のダイアログが表示されました。
グループ化にはすでにCountryが選択されています。
値にはデフォルトで行の数が選択されていますが、ここにSalesを選び、集計関数には合計値(sum) を選択します。
2つの目値にカスタムを選択します。
カスタムの計算を作成できるダイアログが表示されます。
ここに先ほど予習した計算式を入力して実行します。
sum(Sales[str_detect(Category, "Table")])
カスタムで作成した新しい列が追加されているので、実行ボタンをクリックします。
文字列にTableが含まれる売上合計を国ごとに求めることができました。