r内存与性能

R 报错:cannot allocate vector of size(内存不足)

R 申请的内存超过可用量。常见于:读入超大文件、对大数据框做 rbind 循环累加(每次都复制整份数据)、保留了大量中间对象。

报错原文

Error: cannot allocate vector of size 2.3 Gb

为什么会报这个错

R 申请的内存超过可用量。常见于:读入超大文件、对大数据框做 rbind 循环累加(每次都复制整份数据)、保留了大量中间对象。

怎么解决

① gc() 回收内存;② rm() 删掉不用的对象;③ 用 data.table::fread() 读大文件;④ 避免循环 rbind,改用预分配或 do.call(rbind, list);⑤ Windows 上 32 位 R 换 64 位。

代码示例

gc()
rm(list = setdiff(ls(), "keep_this"))
gc()

# 大文件用 fread
library(data.table)
df <- fread("big.csv")

同工具的其他报错

报错解决了,但方法还没搞懂?

报错只是表象。因果推断、面板数据、稳健性检验这些方法背后的逻辑,知识库里按「原理 × 直觉 × 代码」讲清楚了。

进入知识库 →