首先,这个问题不是关于
错误:无法分配大小为n的向量
我将此错误视为给定的错误,并试图避免代码中的错误。
在大约1000列之后,我仍然会得到内存分配错误。
现在,这对我来说很奇怪。不知怎的,内存分配在每个循环之后都在增加。然而,我不明白为什么会这样。
另外,我尝试在每个循环之后调用垃圾收集函数,我仍然得到内存分配错误。
有人能向我解释如何管理变量以避免内存分配的增量增加(毕竟,数据帧大小没有改变)。
发布于 2017-05-11 15:20:17
正如在上面的注释中指出的,答案是这里:在大型data.table中替换NAs的最快方法
我试过了,效果很好
发布于 2017-06-18 15:51:59
我学到了关于r内存使用的一个重要的一般原则。
在任何可能的情况下,避免通过数据文件循环。用伊洛普。这会将dataframe转换为列表,然后运行列表上的相关函数。然后返回一个列表。将列表转换回数据格式。
下面的示例将数字频率重新编码为一个分类变量。它速度快,不会增加内存使用量。
list1<-lapply(mybigdataframe,function(x) ifelse( x>0,"Yes","No"))
newdf1<-as.data.frame(list1)
https://stackoverflow.com/questions/43923935
复制相似问题