0

我正在使用R Studio一些数据分析。我有一个 500MB 的.csv文件。系统规格:i5 + 4GB RAM。如果我在 R 中加载文件,它会占用我大约 1.5GB 的 RAM,并且我没有足够的 RAM 用于其他操作。它给出了如下错误 -

错误:无法分配大小为 9.5MB 的向量

所以,为了节省空间,我决定使用SQLite. 我将数据存储在 SQLite 数据库文件中。我想知道是否有一种方法可以在不将数据加载到 R 的情况下对数据进行操作。直接在我的 SQLite 数据库上使用所有这些 R 函数。

4

1 回答 1

0

无法直接在 [the] SQLite 数据库上使用所有这些 R 函数,因为对数据库的访问是不透明的。几乎所有 R 函数都希望它们的数据驻留在内存中,并且无法处理间接寻址。

也就是说,您也许可以将应用程序所需的那些 R 函数转换为 SQL 查询。然后你可以直接在 SQLite 中对数据进行操作,而不需要先加载它。特别是,您可能能够执行一些省略某些列的查询,一次只查询一组行,或者将几行合并为一个。生成的 data.frame 将小于整个表,并且可能足以满足您的应用程序。

如果一切都失败了,您可能需要考虑使用 64 位 R 和配置为提供足够交换空间的操作系统。在这样的设置中,内存密集型操作可能仍然需要相当长的时间,并且可能会使您的系统在执行时非常慢。但他们最终应该会成功,没有如此丑陋的错误消息。

于 2012-07-28T12:48:56.730 回答