将csv转换为arules

时间:2016-08-25 08:53:43

标签: r csv arules

我在csv中有一个数据库的子集,它有几个不同的列,我想将数据转换成事务。我已经阅读了this post

library(arules)
library(arulesViz)

trans = read.transactions("data.csv", format = "single", sep = ",",
                     cols = c("EMAIL", "BRAND"))

但无法使用建议的解决方案转换我的数据:

CATEGORY   BRAND   SKU   EMAIL         SEGMENT   SALES
shorts     gap     1564  one@mail.x    1         1
tops       gap     8974  one@mail.x    1         2
shoes      nike    3245  two@mail.x    4         3
jeans      levis   8956  two@mail.x    4         1

现在我想使用arules了解客户通常一起购买的品牌。为了使用arules,我需要转换我的数据,使其如下所示:

gap, gap
nike, levis

有人可以帮我弄清楚如何相应地转换我的数据吗?

1 个答案:

答案 0 :(得分:1)

如果我们将列EMAIL视为一种交易ID,我们可以将您的data.frame转换为类transactions

library(arules)
trans <- as(split(df[,"BRAND"], df[,"EMAIL"]), "transactions")

# To explore the rules we could do
rules <- apriori(trans)
inspect(rules)
#  lhs        rhs     support confidence lift
#1 {levis} => {nike}  0.5     1          2   
#2 {nike}  => {levis} 0.5     1          2