在 R 中将大字符向量导出为 CSV 文件

Exporting large character vector as CSV-file in R

我一直在寻找适合我的问题的答案,但没有找到准确或合适的答案。

我有一个很大的字符向量(大约 400 万个元素,大小超过 3GB)。我想 output/export 这个大字符向量作为 CSV 文件,其中每个元素代表一行。

使用 write.tablewrite.csvwrite.csv2 导出此文件会导致内存分配问题。

目前,我已经尝试了 RSQLite 包和 data.table 包中的 fwrite 函数。由于不同的原因,两者似乎都不起作用。

有人知道解决这个问题的好方法吗?

(我在 Windows 64 位机器上,16GB RAM,500GB SSD 和 运行 R 版本 3.2.5)

如评论所述,您可以将字符向量 x 转换为 list,然后使用 data.table::setDT 将其转换为 data.table 参考,即没有复制。所以它会是:

x <- list(x)
library(data.table)
setDT(x)

现在您可以使用 data.table 的新 fwrite 函数来创建 csv 文件。