0

我试图quantreg在 12 555 029 个案例中使用 2 个自变量运行。我在计算机上有 16GB RAM,64 位操作系统。命令memory.limit()返回16 264。返回的命令sessionInfo()

R version 3.5.2 (2018-12-20)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252   
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.5.2 tools_3.5.2   

在执行期间,quantreg最多仅使用4GB。我在任务管理器中看到了这个。超过一个小时没有完成,我停止了它。

为什么quantreg不使用其他可用的 RAM?如何增加 RAM 内存的使用?

4

1 回答 1

2

R 不能使用系统上所有可用的 RAM。有一些技巧可以克服 R 中有限的 RAM 问题。R 将所有数据存储在 RAM 上,因此这就是为什么可以分析的数据大小受限于 RAM 的数量。我们应该做的是减少数据的大小,选择更有效的数据类型和一些技巧来克服这个问题。

1 - 取决于您的数据类型,您可以更改它的类型。例如,数值比整数占用更多内存。

2 - 尽可能使用因子而不是字符。因子更有效,因为它们存储水平而不是整个向量。

3 -如果您有任何没有 NA 值的逻辑变量,请使用位向量。它们只占用 1 位,而逻辑变量占用 4 到 32 位。

4 - 重用您的对象,而不是在可能的情况下创建新对象,并确保gc()在删除某些对象时调用。

5 - 您可以保存您的大数据,删除它并在必要时重新加载。

6 - 看看bigmemoryff包装。

7 - 关闭系统上的所有其他进程,因为它们占用了一定数量的 RAM。

你可以看看 Lim 和 Tjhi 写的名为“R High Performance Programming”的书。

希望能帮助到你。

于 2019-01-21T12:03:14.780 回答