sum_if関数は指定した条件にマッチしたデータで合計値を集計することができる関数です。例えば、製品のカテゴリーが家具だった時の売上合計や、注文回数が2回以上の顧客のみを合計金額を集計するなど、さまざまな条件で数値列の合計値を求めていくことができます。
このsum_if関数は計算を作成(mutate)や集計(summarize)といった処理の中で使用することができます。
シンタックス
sum_if(<列名>, <条件>, na.rm = <TRUE|FALSE>)
引数の説明
ではsum_if関数がどのように使えるのかを、いくつかのケースで紹介していきます。
店舗が東京の条件で売上合計を求める
sum_if(売上, 店舗名 == "東京店", na.rm = TRUE)
国が日本の条件で売上合計を求める
sum_if(売上, 国 == "日本", na.rm = TRUE)
取引額が10000以上の条件で取引額の合計値を求める
sum_if(取引額, 取引額 > 10000, na.rm = TRUE)
顧客ステータスがプレミアムの条件で支払い合計を求める
sum_if(支払額, 顧客ステータス == "プレミアム", na.rm = TRUE)
配送タイプがファーストクラスの条件の売上の合計値を求める
sum_if(`売上`, `配送タイプ` == "ファーストクラス", na.rm = TRUE)
取引日が2023年以降の条件で売上合計を求める
sum_if(売上, 取引日 >= "2023-01-01", na.rm = TRUE)
sum_if関数では複数の条件を指定することが可能です。もし設定した条件の両方にマッチしているもので合計値を求めたい場合は、条件と条件の間に&を利用してください。
sum_if(<列名>, <条件1> & <条件2>, na.rm = <TRUE|FALSE>)
製品カテゴリーが家具で注文の優先度が高い注文の売上合計を求める
sum_if(`売上`, `製品カテゴリー` == "家具" & 注文の優先度 == "高", na.rm = TRUE)
地域が北海道で製品名がソリの売上合計を求める
sum_if(売上, 地域 == "北海道" & 製品名 == "ソリ", na.rm = TRUE)
年齢が20歳以上、30歳以下で性別が男性の購入額の合計を求める
sum_if(`購入額`, `年齢` >= 20 & `年齢` <= 30 & `性別` == "男性", na.rm = TRUE
sum_if関数では複数の条件を指定することが可能です。もし設定した条件のいずれかにマッチしているもので合計値を求めたい場合は、条件と条件の間に|を利用してください。
sum_if(<列名>, <条件1> | <条件2>, na.rm = <TRUE|FALSE>)
製品カテゴリーが家具または家電の売上合計を求める
sum_if(売上, 製品カテゴリー == "家具" | 製品カテゴリー == "家電", na.rm = TRUE)
店舗名が大阪店か神戸店のいずれかの売上合計を求める
sum_if(売上, 店舗名 == "大阪店" | 店舗名 == "神戸店", na.rm = TRUE)
キャンペーンタイプがなしがまたは欠損値の時の売上合計を求める
sum_if(売上, キャンペーンタイプ == "なし" | is.na(キャンペーンタイプ))