如何将交易数据准备到 arules 的篮子中

How to prep transaction data into basket for arules

好的,所以我搜索了很多,想 运行 规则销售数据。我只需要以正确的格式正确获取数据并设置正确的 "factors" 或 "variables" 以及篮子形式。

现在我有订单号的销售数据,然后是其中的项目。每个订单都是唯一的(每个新订单都会创建一个新的 # 并包含零件号),但相同的商品显然可以出现在多个订单中。

目前我的数据是这样设置的:

Order#    Part#   PartDescription
1         A       PartA
1         B       PartB
1         G       PartG
2         R       PartR
3         A       PartA
3         B       PartB
4         E       PartE
5         Y       PartY
6         A       PartA
6         B       PartB
6         F       PartF
6         V       PartV

所以,R不喜欢这种形式,我必须得到arules和数据分析会接受的形式。

是的,我将其保存为文本文件并尝试了 .csv 文件,但如果我能获得有关如何在 RStudio 中准备或操作它的分步说明,那就太好了。

我读到它应该是篮子形式,例如..

1 (A, B, G)
2 (R)
3 (A, B)
4 (E)
5 (Y)
6 (A, B, F, V)

如果不准确,请纠正我。我明白了,但我只需要一步一步的说明,我似乎在任何地方都找不到。我试过使用 dplyr 和 tidyr。我对数据分析有很好的理解,但在 RStudio 上需要更直接的帮助,所以如果我能一步一步地做到这一点,我会进一步理解这一点。

查看 "transactions" 数据类型的帮助页面,获取有关如何获取数据的示例:

library(arules)
?transactions

对于您的类型,您希望按订单 split,然后使用 as 将其放入交易列表:

trans <- as(split(data[,"Part"], data[,"Order"]), "transactions")
inspect(trans)
  items     transactionID
1 {A,B,G}   1            
2 {R}       2            
3 {A,B}     3            
4 {E}       4            
5 {Y}       5            
6 {A,B,F,V} 6   

我在强制转换方面遇到了很多麻烦(例如,'as(dataname, "transactions"..).

我认为这是因为我有重复的记录(即,当数据为 'single' 格式时,同一商品在同一笔交易中购买了不止一次)。

这就是最终对我有用的方法:

Transactions<- read.transactions("Data with tx ids, item names, in
                      single format.csv", 
                      rm.duplicates= TRUE, sep=",",
                      format = "single", cols = c(7,9));

(第 7 列中的交易 ID,第 9 列中的项目名称)