0

我一直在努力重写与 data.frames 一起使用的代码以与 ffdf 一起使用。我有两列,经过一番大惊小怪,我设法进行了拆分并获得了一个具有以下外观的列表:

data=
$A
1 2 3
$B
4 5 6

其中 A,B 是“篮子”或分组,以及“1 2 3”特定的分组项目。我现在想要的是将这些转换为交易,并希望能够做到先验。我试过简单的

as(i, "transaction")

从 data.frame 生成“数据”时效果很好,但现在会产生错误:

Error in as(data, "transactions") : 
no method or default for coercing “list” to “transactions”

我已经看到重复的项目会导致这些问题,所以我已经消除了这些问题,但错误仍然存​​在。

4

2 回答 2

1

应该没有问题:

library(arules)
data <- list(A=1:3, B=4:6)

showMethods("coerce", classes="transactions")
# Function: coerce (package methods)
# from="data.frame", to="transactions"
# from="list", to="transactions"
# from="matrix", to="transactions"
# from="ngCMatrix", to="transactions"
# from="tidLists", to="transactions"
# from="transactions", to="data.frame"
# from="transactions", to="list"
# from="transactions", to="matrix"
# from="transactions", to="tidLists"

class(data)
# [1] "list"
as(data, "transactions")
# transactions in sparse format with
#  2 transactions (rows) and
#  6 items (columns)

另请注意,您写了as(i, "transaction")而不是as(i, "transactions").

于 2016-08-29T13:57:27.047 回答
0

幸运的是,实际上没有必要执行此步骤!一个人可以只发送一个描述的列表,apriori 会尝试找出它!感谢来自以下链接的 agstudy。

无法将数据框转换为事务对象

如果其他人需要解决这个问题,我会留下这个问题。

于 2016-08-29T13:54:28.303 回答