使用具有唯一订单号但重复订单组合的 arules 包的 R 篮子分析

2024-04-28

使用具有唯一订单号但重复订单组合的 arules 包进行 R 篮子分析

刚刚学习 R。我正在尝试使用 arules 包进行购物篮分析(但我完全接受任何其他包建议!)来比较所购买的 6 种不同商品类型的所有可能组合。

我的原始数据集如下所示:

OrderNo, ItemType, ItemCount  
111, Health, 1  
111, Leisure, 2  
111, Sports, 1  
222, Health, 3      
333, Food, 7  
333, Clothing, 1  
444, Clothing, 2  
444, Health, 1  
444, Accessories, 2  

. . .

这个列表还很长,大约有 3,000 个观察结果。

我将数据折叠到一个矩阵中,其中每个唯一订单包含一行,其中包含特定 ItemType 的计数:

 OrderNo, Accessories, Clothing, Food, Health, Leisure, Sports  
 111, 0, 0, 0, 1, 2, 1  
 222, 0, 0, 0, 3, 0, 0  
 333, 0, 1, 7, 0 , 0, 0  
 444, 2, 2, 0, 1, 0, 0  
 . . .

每次我尝试使用以下命令读取交易(以及一百万次尝试的变体):

tr <- read.transactions("dataset.csv", rm.duplicates=FALSE, format="basket", sep=",")

我收到错误消息: asMethod(object) 中的错误:无法强制列表包含重复项目的事务。

我假设这是因为我有 3,000 个观察结果,并且不可避免地某些组合会出现多次(即,不止一个人只购买一件衣服而没有其他东西:OrderNo, 0, 1, 0, 0 , 0, 0)。我知道我可以根据唯一组合的数量折叠数据集,但我担心如果这样做,将没有权重来显示最常见的组合。

我认为使用 format="basket" 会考虑包含相同项目组合的不同订单,但显然情况并非如此。我很失落。我读过的所有文档都表明这是可能的,但我找不到任何有关如何解决该问题的示例或建议。

任何建议将不胜感激!我的头在旋转。

额外信息:对于我的最终结果,我希望获得前五个最重要的购买组合组合。我不知道这是否有帮助。


好吧,经过几个小时的搜索和阅读我能找到的所有 pdf 文件,我终于在Graham Williams 的数据挖掘桌面生存指南: http://www.ms.unimelb.edu.au/~odj/Teaching/dm/arules_examples_Graham_Williams.pdf

read.transactions 函数还可以从具有事务 ID 和每行单个项目的文件中读取数据(使用 format="single" 选项)。

因此导入后无需进行所有这些转换。我应该直接从原始 csv 文件导入,指定“单一”格式选项而不是“篮子”。我还必须确保该文件包含没有列名并且存在与订单号配对的商品类型的唯一表示(例如,如果一个人从“杂货”类别订购了两件商品,则需要在一行上表示)。还有cols=c(2,1)选项指示第 1 列包含订单号,第 2 列是其余数据 (ItemType)。

tr <- read.transactions(file='dataset.csv', format='single', sep=',', cols=c(2,1))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用具有唯一订单号但重复订单组合的 arules 包的 R 篮子分析 的相关文章

  • 如何在R中绘制仪表图表?

    如何在 R 中绘制以下图 Red 30 Yellow 40 Green 30 Needle at 52 所以这里有一个完整的ggplot解决方案 注意 从原始帖子中编辑 在仪表中断处添加数字指示器和标签 这似乎是OP在评论中所要求的 如果不
  • 如何在 switch 语句中将向量作为参数传递

    我对问题的谷歌搜索没有返回有用的结果和文档 switch没有告诉我如何做 所以我希望我能在这里得到答案 假设我有一个向量 cases lt c one two three 我想使用 switch 语句并将这些元素作为 switch 语句的参
  • 使用 gtable 排列 ggplot 绘图(具有相同宽度的 grobs)以创建 2x2 布局

    我正在尝试使用 grobs 和 gtable 将 4 个 ggplot2 图排列成 2x2 网格 我不知道如何设置宽度 也不知道如何设置非 1xn 或 nx1 排列 使用此代码 data iris a lt ggplot iris aes
  • 生成因子变量水平的预测值

    我正在使用连续结果变量对多个因子变量进行回归lm 例如 fit lt lm dv factor hour factor weekday factor month factor year count data df 我想生成预测值 yhat
  • 如何在R中使用OpenNLP获取POS标签?

    这是 R 代码 library NLP library openNLP tagPOS lt function x s lt as String x word token annotator lt Maxent Word Token Anno
  • 在 R 中使用 gsub 删除尾随空格[重复]

    这个问题在这里已经有答案了 有没有人有一个技巧可以用 gsub 删除变量上的尾随空格 以下是我的数据示例 正如您所看到的 我在变量中同时包含尾随空格和嵌入空格 county lt c mississippi mississippi cany
  • 如何管理和处理 R 包中的补充数据

    我想在我的 R 包中添加补充数据 我知道关于LazyData true in DESCRIPTION 但不想使用它 因为示例数据相当大 所以我创建了一个目录 data 其中包含两个 RData文件和一个datalist 我添加使用tools
  • R dplyr过滤多列上的字符串条件

    我有一个 df 例如 df lt read table text v1 v2 v3 v4 v5 1 A B X C 2 A B C X 3 A C C C 4 B D V A 5 B Z Z D header T 如果变量 v2 到 v5
  • S4 类 [(子集)带有附加参数的继承

    这是一个扩展在 R 中的访问器函数中使用 callNextMethod https stackoverflow com q 24875284 2752888 2017 03 25 更新 为了说明如何仅在加载方法时失败 但在构建的包中时不会失
  • 如何融合颜色和形状?

    当我有一个超过 6 个值的变量时 我的麻烦就开始了 因为这是 ggplot2 中 scale shape 函数的当前最大值 由于这个问题 我尝试使用另一个变量来解决这个问题 我只是将原始变量的长度包裹起来 这是我的示例代码 dataf lt
  • 如何从多边形数据中提取栅格值然后加入到空间数据框中?

    我想将多边形数据和栅格数据合并到一个数据框中 以便随后在 R 中使用 randomForests 包 这涉及首先提取每个多边形的平均栅格值 到目前为止 我有以下内容 load libraries library raster library
  • 带有nearPoints()的动态ggplot图层闪亮

    我熟悉闪亮的基础知识 但在这里遇到了一些困难 我希望能够在单击某个点以突出显示该点时添加 ggplot 图层 我知道 ggvis 可以做到这一点 并且画廊中有一个很好的例子 但我希望能够使用nearPoints 捕获点击作为 ui 输入 我
  • 如果条件长度 > 1 并且仅使用第一个元素,为什么我会在 R 中收到此警告

    我有下面的源代码 这if is na monthData 用于检查是否monthData is NA 如果是 则为其分配一个初始值 monthData lt NA if category QUARTER for m in c rep 1 4
  • 按具有作业的组划分的 R 分位数

    我有以下 df group rep seq 1 3 30 variable runif 90 5 0 7 5 df data frame group variable 我需要 i 按组定义分位数 ii 将每个人分配到相对于其组的分位数 因此
  • R:如何根据规范更改数据框中的列名称

    我有一个数据框 它的开头如下 SM H1455 SM V1456 SM K1457 SM X1461 SM K1462 ENSG00000000419 8 290 270 314 364 240 ENSG00000000457 8 252
  • 优化 R 中的嵌套 for 循环

    我尝试加速下面的代码 但没有成功 我读到Rfast https cran r project org web packages Rfast Rfast pdf包 但我也未能实现该包 有没有办法优化R中的以下代码 RI lt function
  • 使用 stargazer 分析包含时间序列的数据帧

    我有一个面板数据集共 10 个观测值和 3 个变量 观测值 30 的数量 10 行 国家 地区 2 列 迁移参数 相应年份的 1 列 可以这么说 我的数据框由 3 个年度数据框组成 我该如何申请观星者考虑到它是一个面板数据集 所以最大 N
  • 建模前减少因子水平数量

    我有一个 2600 个级别的因子 我想在建模之前将其减少到 10 我想我可以通过这样的操作来做到这一点 如果一个因素列出的次数少于 x 次 则应将其放入名为 其他 的存储桶中 这是一些示例数据 df lt data frame colour
  • 栅格堆叠后如何写入?

    我想操作几个光栅文件 然后再次写入它们 rasterfiles lt list files C data envi full names TRUE d1 lt overlay stack rasterfiles fun function x
  • R lubridate:当地语言的工作日

    如何获取本地语言的工作日和月份 My code library lubridate data lt c 10 02 2015 11 03 2015 data lubri lt dmy data wday data lubri label T

随机推荐