大数据从arules包转换为"transactions"

Mar*_*rco 6 transactions r bigdata apriori

R中的arules包使用"事务"类.所以为了使用apriori()我需要的功能来转换我现有的数据.我有一个有2列和大约1.6毫米行的矩阵并尝试转换数据,如下所示:

transaction_data <- as(split(original_data[,"id"], original_data[,"type"]), "transactions")
Run Code Online (Sandbox Code Playgroud)

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

结果向量超过'AnswerType'中的向量长度限制

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

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

Ite*_*tor 3

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

不过,总的来说,我确实建议使用内存映射文件 via bigmemory,您也可以通过bigsplit或拆分和处理该文件mwhich。如果卸载数据对您有用,那么您还可以使用更小的实例大小并节省费用。:)