计算 R 中元素组合的出现次数

Counting appearances of combination of elements in R

我有一个大客户向我购买的频率很高。我想知道他经常一起购买哪些产品组合。例如,每次他购买 产品 A 时,他也会购买 产品 W。其他产品组合也是如此。

我的目标是确定哪些是这些产品组合,以便我可以向仅购买 产品 A[=33] 的其他客户提供 产品 W =](也许他们正在从我的竞争对手那里购买 W 产品而不知道我出售它)。

我的数据是这样的

   codclient  codproduct            quant         date
1      101249     A                4.1600     2016-10-01
2      101249     W                1.3880     2016-10-01
3      101249     B                1.5268     2016-10-01
4      101249     A                0.8328     2016-11-01
5      101249     W                2.9148     2016-11-01
6      101249     B                2.7760     2016-11-01
7      101249     C                1.8750     2016-11-01
8      101250     A                0.6940     2016-10-01
9      101250     A                7.0000     2016-11-01
10     101251     B               12.0000     2016-11-01
11     101251     C             1000.0000     2016-11-01
12     101252     W             1000.0000     2016-11-01

使用 intersectReduce(intersect, list = (products_by_month)) 我只能看到哪些商品总是被购买。

到目前为止,我的想法是计算每个产品组合在几个月内在客户 49 的购买帐户中出现的次数,然后选择这些篮子作为参考,为我的其他客户提供建议。

我可以使用 combn 创建产品组合的向量(两个或三个产品的每个组合就足够了)但我仍然不知道如何计算它们在购买的每个向量中一起出现的次数每个月的产品。

有什么想法吗?

你可以用 dplyr 做到这一点:

spread(filter(df,codClient == 101249),codproduct,quant)

     codclient      date      A       B        C         W
1       101249 10/1/2016 4.1600  1.5268       NA    1.3880
2       101249 11/1/2016 0.8328  2.7760    1.875    2.9148

一段时间以来,我一直想深入研究购物篮分析,我知道 r 中有一个特定的软件包:

https://cran.r-project.org/web/packages/arules/index.html

这可能对你有帮助,也可能没有帮助,但我想我会把它扔在那里以防万一。