如何将交易数据准备到 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 列中的项目名称)
好的,所以我搜索了很多,想 运行 规则销售数据。我只需要以正确的格式正确获取数据并设置正确的 "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 列中的项目名称)