read.csv.fdff 错误:无法分配大小为 6607642.0 Gb 的向量

Posted

技术标签:

【中文标题】read.csv.fdff 错误:无法分配大小为 6607642.0 Gb 的向量【英文标题】:read.csv.fdff error: cannot allocate vector of size 6607642.0 Gb 【发布时间】:2019-05-05 07:26:46 【问题描述】:

我需要将一个 4.5GB 的 csv 文件读入 RStudio,为了克服内存问题,我使用了 ff 包中的 read.ffdf 函数。但是,我仍然收到数据太大的错误消息

错误:无法分配大小为 6607642.0 Gb 的向量

我不知道为什么。非常感谢任何帮助!

options(fftempdir="C:/Users/Documents/")

CRSPDailyff <- read.csv.ffdf(file="CRSP_Daily_Stock_Returns_1995-2015.csv")

【问题讨论】:

没有可重现的例子很难帮助你。无论如何,请尝试使用: data.table 包中的 fread() 。它会给你一个“data.table”类的对象,它与data.frame非常相似,虽然有时很古怪。您可以通过使用 as.data.frame(x) 或在 fread() 的参数中使用 data.table=FALSE 轻松地将其转换为您熟悉的 data.frame。或者,我建议你这篇文章:rstudio-pubs-static.s3.amazonaws.com/… 您是否尝试过使用小块加载数据并使用 rbind 连接每个块? 也许你可以试试data.table package 试试昨天刚刚出现在 CRAN 上的新 vroom 包。 【参考方案1】:

我怀疑你可以使用 next.rows 参数来克服这个限制。

请尝试:

options(fftempdir="C:/Users/Documents/")

CRSPDailyff <- 
read.csv.ffdf(file="CRSP_Daily_Stock_Returns_1995-2015.csv", next.rows = 100000)

用其他值对next.rows进行实验,我个人在校园的4GB机器上使用500000。

其他评论者的使用建议

【讨论】:

以上是关于read.csv.fdff 错误:无法分配大小为 6607642.0 Gb 的向量的主要内容,如果未能解决你的问题,请参考以下文章

无法为具有大小的数组分配内存

致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 71 字节)

使用 pear :致命错误:允许的内存大小为 134217728 字节已用尽(尝试分配 6144 字节)

R内存管理/无法分配大小为n Mb的向量

致命错误:允许的内存大小为 268435456 字节已用尽(尝试分配 8192 字节)[重复]

CakePHP:致命错误:允许的内存大小为 536870912 字节已用尽(尝试分配 52 字节)