"Can't allocate vector of size..." 错误,即使 memory.limit() 和 memory.size() 高得多

"Can't allocate vector of size..." error even though memory.limit() and memory.size() are much higher

我想 运行 我的数据上的随机森林,例如

# fit a random forest model (using ranger)
rf_fit <- train(as.factor(y_variable) ~ ., 
                data = training_set, 
                method = "ranger")

哪个returns:

Error: cannot allocate vector of size 5.8 Gb

但是

memory.limit()

returns:

[1] 20000

memory.size()

returns 稍小的值(但仍大于 6GB):

[1] 18785.67

那为什么不能分配内存呢?

那个错误是内存分配的“最后一根稻草”。因此,即使您有 20GB 的 RAM,在它需要分配另外 6GB 的地方,也没有足够的可用空间。这可能是因为您已经有对象占用了 space,或者因为随机森林模型正在为多个对象分配内存,这些对象的总内存大于 20GB。