大数据从arules包转换为“transactions”

时间:2011-08-30 16:19:32

标签: r transactions bigdata apriori

R中的arules包使用“事务”类。因此,为了使用函数apriori(),我需要转换现有数据。我有一个有2列和大约1.6毫米行的矩阵,并尝试转换这样的数据:

transaction_data <- as(split(original_data[,"id"], original_data[,"type"]), "transactions")

其中original_data是我的数据矩阵。由于数据量的原因,我使用了最大的AWS亚马逊机器,内存为64GB。过了一会儿,我得到了

  

结果向量超过'AnswerType'

中的向量长度限制

该机器的内存使用率仍然只有60%。这是基于R的限制吗?除了使用采样之外,还有什么方法可以解决这个问题吗?当只使用1/4的数据时,转换工作正常。

编辑:正如所指出的,其中一个变量是因素而不是字符。更改后的转换处理快速正确。

1 个答案:

答案 0 :(得分:3)

我怀疑你的问题是因为其中一个函数使用整数(而不是浮点数)来索引值。无论如何,尺寸不是太大,所以这是令人惊讶的。也许数据还有其他一些问题,例如字符作为因素?

一般情况下,我建议您通过bigmemory使用内存映射文件,您也可以通过bigsplitmwhich进行拆分和处理。如果卸载数据适合您,那么您还可以使用更小的实例大小并保存$$。 :)