来源:
http://gking.harvard.edu/zelig/docs/How_do_I2.html (备份)
Windows用户可能会出现R已经用完内存的错误。
如果您已经安装了R并随后增加了更多的RAM,您可能需要重新安装R以利用额外的容量。
您也可以手动设置可用内存的数量。关闭R,然后右键单击您的R程序图标(位于桌面或程序目录中的图标)。选择“属性”,然后选择“快捷方式”选项卡。查找“目标”字段,在指向R可执行文件的引号之后添加
--max-mem-size=500M
如下图所示。您可以将此值增加到2GB或安装的物理RAM的最大值。
如果出现R无法分配长度为x的矢量的错误,请关闭R并将以下行添加到“目标”字段中:
--max-vsize=500M
或适当地调整。您始终可以通过在R提示符下键入来检查R有多少可用内存
memory.limit()
此命令可获取可用内存量,单位为MB。在之前的R版本中,你需要使用以下命令:round(memory.limit()/2^20, 2)
。
使用 memory.limit()
命令可以查看当前内存限制。通过命令 memory.limit(size=2500)
可以将默认值增加到指定大小,其中大小以MB为单位。为了充分利用此功能,您需要使用64位操作系统。
另一个建议是尽可能使用内存高效的对象:例如,使用矩阵而不是数据框。
对于 Linux/Unix,我可以建议使用 unix 软件包。
要增加Linux中的内存限制:
install.packages("unix")
library(unix)
rlimit_as(1e12) #increases to ~12GB
你也可以使用以下方法检查内存:
rlimit_all()
更详细的信息请参见: https://rdrr.io/cran/unix/man/rlimit.html
此外,您还可以在此处找到更多信息: limiting memory usage in R under linux
如果可以的话,Microsoft Windows将接受进程的任何内存请求。
除了虚拟内存大小之外,没有提供给进程的内存限制。
32位系统中,无论运行多少应用程序,任何进程的虚拟内存大小都为4GB。任何进程都可以在32位系统中分配高达4GB的内存。
实际上,Windows根据进程的请求和页面文件机制自动从RAM或页面文件中分配已分配内存的某些部分。
但是,另一个限制是页面文件的大小。如果您的页面文件很小,则无法分配大内存。您可以根据Microsoft的建议增加页面文件的大小以获得更多的内存空间。
要增加分配给R的内存量,您可以使用memory.limit函数。
memory.limit(size = ...)
或者
memory.size(max = ...)
关于参数
memory.limit()
。 - cineS.file.edit(file.path("~", ".Rprofile"))
然后在.Rprofile中输入以下内容并保存
invisible(utils::memory.limit(size = 60000))
降低:
打开.Rprofile文件
invisible(utils::memory.limit(size = 30000))
保存并重启RStudio。