我正在尝试根据包含以下列的数据创建摘要:
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"))
我想要做的是获得 Item_Qty 的总和以及每个 Wk_Num+Brand 组合的 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))})
然而,这也是有缺陷的,因为客户实际上可能在一周内购买了多次,并且他们将被重复计算。
我仍处于R之旅的早期阶段,并试图优雅地编写代码。有没有一种好方法可以组合我从第一个代码构建的数据摘要,以及计算每个 Wk_Num+Brand 组合的唯一 Cust_Num 占唯一 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