9

好的,所以我搜索了很多,想对销售数据运行 arules。我只需要以正确的格式正确获取数据,并使用正确的“因子”或“变量”和篮子形式进行设置。

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

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

订单# Part# PartDescription
1个A部分
1 B B部分
1G G 部分
2 R PartR
3 A 部分A
3 B B部分
4 E 部分
5年派对
6 A部分A
6 B B部分
6 F PartF
6 V 部分

因此,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 上需要更直接的帮助,所以如果我能一步一步地了解这一点,我会进一步理解。

4

2 回答 2

8

查看“事务”数据类型的帮助页面,了解如何获取数据的示例:

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   
于 2015-10-07T16:39:10.217 回答
1

我在强制方面遇到了很多麻烦(例如,'as(dataname,“transactions”..)。

我相信这是因为我有重复的记录(即,当数据为“单一”格式时,同一项目在同一交易中购买了多次)。

这最终对我有用:

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

(第 7 列中的 tx id,第 9 列中的项目名称)

于 2015-10-19T21:06:11.857 回答