r内存与性能
R 报错:vector memory exhausted (limit reached?)(macOS 内存上限)
macOS 上 R 默认受 R_MEMORY_LIMIT 限制,大文件或大矩阵会撞墙。不是物理内存不够,是 R 自己的上限。
报错原文
Error: vector memory exhausted (limit reached?)为什么会报这个错
macOS 上 R 默认受 R_MEMORY_LIMIT 限制,大文件或大矩阵会撞墙。不是物理内存不够,是 R 自己的上限。
怎么解决
在 ~/.Renviron 里设 R_MAX_VSIZE=32Gb,重启 R。同时用 data.table::fread() 替代 read.csv(),rm() 及时清对象并 gc()。
代码示例
# ~/.Renviron 加一行
# R_MAX_VSIZE=32Gb
# 读大文件
library(data.table)
df <- fread("big.csv")
# 及时释放
rm(tmp); gc()同工具的其他报错
报错解决了,但方法还没搞懂?
报错只是表象。因果推断、面板数据、稳健性检验这些方法背后的逻辑,知识库里按「原理 × 直觉 × 代码」讲清楚了。
进入知识库 →