首页 > 解决方案 > 如何在不使用 memory.size 和 memory.limit 的情况下解决“错误:无法分配大小为 XX 的向量”

问题描述

我在 R 中运行一个非常简单的代码(使用 RStudio),它使用了一个已经编码的函数。

使用该功能时,出现经典错误:

"错误: 无法分配大小为 XX 的向量",

因为对于函数而言,其中一个输入是“大”向量。

我一直在寻找解决方案,但都指向使用 memory.size() 和 memory.limit()。问题是我在服务器上工作,所以这些功能不可用(仅适用于 Windows)。由于我在服务器上工作,原则上我的内存应该没有问题(可用内存远大于 R 说无法处理的内存。

任何建议都会非常有用,谢谢!!

编辑:这是代码:

rm(list = ls())

library(readstata13)
library(devtools)
library(csranks)
library(dplyr)

k1 <- read.dta13("k1.dta")

gc()

CS_simul <- cstauworst(k1$K1, k1$se1, tau=10, R=5, seed=101,  na.rm=TRUE)

cstauworst 是库曲柄中包含的函数。数据 k1 是“小”(小于 1 MB,大约 60k obs),但对于函数而言很大。该算法需要同时使用整个数据,因此我无法逐个运行或并行运行它。

标签: rmemorymemory-management

解决方案


推荐阅读