次の列を含むデータに基づいて要約を作成しようとしています。
Trx_Date Brand Cust_Num Item_Qty Item_Price
さまざまなブランド(キャラクターオブジェクトクラス)について、その年の各週に基づいてItem_QtyとItem_Amtの要約を作成しようとしています。私は次の方法でWk_Numを作成することができました。
Wk_Num <- as.character(strftime(as.POSIXlt(Trx_Date), format="%W"))
私がやろうとしているのは、Wk_Num + Brandの組み合わせごとに、Item_Qtyの合計とItem_Priceの平均を取得することです。私は次の方法で欲しいものを手に入れることができます:
tblsum <- summary(Item_Price + Item_Qty ~ Wk_Num + Brand, data=tblorig, FUN = function(x) { c(m = mean(x), s= sum(x))})
私がやりたいのは、特定のWk_Num + Brandの組み合わせごとに、すべての購入者の合計(つまり、浸透)に対する購入者の割合を計算する別の列を作成することです。上記のコードを修正して、長さも計算できます(各組み合わせの「購入者」の数を取得するため)。
tblsum <- summary(Item_Price + Item_Qty ~ Wk_Num + Brand, data=tblorig, FUN = function(x) { c(m = mean(x), s= sum(x), l=length(x))})
ただし、これにも欠陥があります。顧客は実際には1週間以内に複数回購入する可能性があり、二重にカウントされるためです。
私はまだRの旅の早い段階で、エレガントにコーディングしようとしています。最初のコードから作成したデータの概要を組み合わせて、一意のCust_Numの総数に対する各Wk_Num + Brandの組み合わせの一意のCust_Numの割合を計算する良い方法はありますか?
コードの改善も大歓迎です。
アップデート:
サンプルデータ:
Wk_Num Brand Cust_Num Item_Qty Item_Price
11 AAA 001 1 2.1
11 BBB 001 1 1.4
11 AAA 002 2 2.1
12 CCC 003 1 1.5
12 BBB 001 3 1.4
12 BBB 001 2 1.4
12 BBB 004 1 1.5
12 CCC 004 1 1.5
13 AAA 002 2 2.2
13 AAA 001 3 2.1
13 AAA 003 1 2.2
13 AAA 004 2 2.1
出力として理想的なものは次のとおりです。
Wk_Num Brand Total Item Avg Item Price Penetration
11 AAA 3 2.10 50% # 2 out of 4
11 BBB 1 1.40 25% # 1 out of 4
12 BBB 6 1.43 50% # 2 out of 4 (Cust 001 bought twice in that week)
12 CCC 1 1.50 25% # 1 out of 4
13 AAA 8 2.15 100% # 4 out of 4