【问题标题】:Counting appearances of combination of elements in R计算 R 中元素组合的出现次数
【发布时间】:2017-04-28 21:28:06
【问题描述】:

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

我的目标是确定哪些是这些产品组合,以便我可以向仅购买 产品 A 的其他客户提供 产品 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 创建产品组合向量(两个或三个产品的每个组合就足够了)但我仍然想念如何计算它们在每个月购买的产品的每个向量中一起出现的次数.

关于如何做到这一点的任何想法?

【问题讨论】:

  • 您可能会发现一些有用的东西here——例如crossprod(table(month, product))
  • 我可能会制作一个以产品为节点的完整图表;设置一对产品之间的重量=它们一起购买的#次;并使用一些标准的图形工具来查找集群(......我只是假设这些存在)。

标签: r count combn


【解决方案1】:

我一直想深入研究购物篮分析,我知道 r 中有一个特定的包:

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

这可能会或可能不会帮助你,但我想我会把它扔在那里以防万一。

【讨论】:

  • 这比我想象的要多得多。谢谢
  • 没有问题!这真是一个引人入胜的话题。
【解决方案2】:

你可以用 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

【讨论】:

    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多