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")同工具的其他报错
报错解决了,但方法还没搞懂?
报错只是表象。因果推断、面板数据、稳健性检验这些方法背后的逻辑,知识库里按「原理 × 直觉 × 代码」讲清楚了。
进入知识库 →