【发布时间】:2015-08-31 13:35:32
【问题描述】:
我是 R 新手,正在使用一家中型零售店的交易数据进行练习。我想创建一个数据框,其中包含每个客户在不同类别产品中的购买百分比,以及他们的总购买量。通过这种方式,我们可以向在特定类别中具有明显偏好的人发送营销电子邮件,但排除购买次数少于五次的人。
示例数据(除了现实中的近 100 个类别和大约 250,000 行):
+-------------+-------------+--------------------+------+------+------+
| Transaction | Customer_ID | Email | Cat1 | Cat2 | Cat3 |
+-------------+-------------+--------------------+------+------+------+
| 55 | 1 | email@address.com | 1 | 0 | 0 |
| 55 | 1 | email@address.com | 1 | 0 | 0 |
| 56 | 2 | email2@address.com | 0 | 0 | 2 |
| 57 | 3 | email3@address.com | 3 | 0 | 0 |
+-------------+-------------+--------------------+------+------+------+
第 1 步:按客户 ID 汇总,我使用了以下代码:
segmented <- aggregate(df[4:6], list(Customer_ID=orders$Customer_ID), FUN = sum)
第 2 步:为了将这些汇总数字转换为百分比,我使用了以下代码:
segmented_percentage <- cbind(id = segmented[, 1], segmented[, -1]/rowSums(segmented[, -1])*100)
但是,我在第 1 步中丢失了电子邮件地址,当我尝试将数据框与以下内容合并时,它从未完成处理(我已经等了几个小时)。
merge(segmented_percentage, df)
简而言之:我如何将这么多部分重新组合在一起以获取具有明显偏好和总购买量的电子邮件?
(非常感谢 Stack Overflow 的所有其他答案。我在上面所做的完全是谷歌搜索的结果,并在这里找到了好的答案。)
【问题讨论】:
标签: r