R on MacOS错误:向量内存耗尽(达到限制?)

Anj*_*waj 40 macos r bioconductor

我正在尝试运行R脚本(特别是,我正在使用Bioconductor包中的"getLineages"函数,Slingshot.

我想知道为什么当我使用这个函数时出现错误"向量内存耗尽(限制达到了?)",因为与这个包中的其他函数相比,它似乎不是最耗费内存的函数(带有我正在分析的数据).

我确实理解在Stackoverflow上还有其他类似的问题,但他们都建议切换到64位版本的R.但是,我已经在使用这个版本.到目前为止,这个问题似乎没有其他答案,我想知道是否有人知道?

数据大小只有120mb,远远低于我电脑的8GB内存.

R 64位版本

Gra*_*ost 44

对于那些使用Rstudio的人,我发现Sys.setenv('R_MAX_VSIZE'=32000000000)在多个StackOverflow帖子上建议的设置仅适用于命令行,并且在使用Rstudio时设置该参数不会阻止此错误:

Error: vector memory exhausted (limit reached?)

在做了一些阅读之后,我发现了这个线程,它澄清了Rstudio的问题,并确定了一个解决方案,如下所示:

第1步:打开终端,

第2步:

cd ~
touch .Renviron
open .Renviron
Run Code Online (Sandbox Code Playgroud)

第3步:将以下内容保存为第一行.Renviron:

R_MAX_VSIZE=100Gb 
Run Code Online (Sandbox Code Playgroud)

注意:此限制包括物理和虚拟内存; 因此,在具有16Gb物理内存的计算机上设置_MAX_VSIZE = 16Gb可能无法阻止此错误.您可能必须使用此参数,具体取决于您的机器的规格

  • 也许很明显,但我必须重新启动 R 才能使其工作 (7认同)
  • 如果这对遇到相同错误的人有帮助(我知道这个线程很旧!),您可以从活动监视器近乎实时地观察 R 的内存使用情况。我发现这对于诊断问题很有用。 (3认同)
  • 只有 .Renviron 版本对我有用,我在终端 cmd 行上。 (2认同)

小智 41

这也可以通过 R studio 来完成。

library(usethis) 
usethis::edit_r_environ()
Run Code Online (Sandbox Code Playgroud)

当选项卡在 R studio 中打开时,将其添加到第一行:(R_MAX_VSIZE=100Gb或您希望分配的任何内存)。

重新启动R和/或重新启动计算机并再次运行出现内存错误的 R 命令。


Öme*_* An 9

我遇到了同样的问题,"R_MAX_VSIZE"在我的情况下增加没有帮助,而是清理不再需要的变量解决了问题。希望这可以帮助那些在这里挣扎的人。

rm(large_df, large_list, large_vector, temp_variables)
Run Code Online (Sandbox Code Playgroud)