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()

同工具的其他报错

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

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

进入知识库 →