好的,所以我搜索了很多,并希望在销售数据上运行arules。我只需要以正确的格式正确获取数据,并使用正确的“因子”或“变量”以篮子形式设置。
现在我有订单#的销售数据,然后是里面的项目。每个订单都是唯一的(每个新订单,新的#创建并包含部分#),但相同的项目显然可以出现在许多订单中。
目前,我的数据设置如下:
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的直接帮助,所以如果我可以一步一步地逐步理解这一点。
答案 0 :(得分:7)
查看"交易"的帮助页面。有关如何获取数据的示例的数据类型:
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
答案 1 :(得分: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列中的项目名称)