如何为arules准备交易数据到篮子里

V1k*_*1k1 8 r arules market-basket-analysis

好的,所以我搜索了很多,并希望在销售数据上运行arules.我只需要以正确的格式正确获取数据,并使用正确的"因子"或"变量"并以篮子形式设置.

现在我有Order#的销售数据,然后是里面的项目.每个订单都是唯一的(每个新订单,新的#创建并包含部分#),但相同的项目显然可以出现在许多订单中.

目前,我的数据设置如下:

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的直接帮助,所以如果我可以一步一步地进行,我会进一步理解这一点.

jer*_*ycg 7

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

library(arules)
?transactions
Run Code Online (Sandbox Code Playgroud)

对于您的类型,您希望split通过Order,然后使用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   
Run Code Online (Sandbox Code Playgroud)