6

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

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

其中 original_data 是我的数据矩阵。由于数据量大,我使用了最大的 AWS Amazon 机器,64gb RAM。过了一会儿我得到

结果向量超出了“AnswerType”中的向量长度限制

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

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

4

1 回答 1

3

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

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

于 2011-09-05T03:43:56.540 回答