1

我正在做一些分析,需要我从 7000x182 数组计算距离矩阵(现在是欧几里德,以后可能是马氏),这将产生一个 7000x7000 矩阵(假设我也采用矩阵的上半部分)。

z <- as.matrix(dist(training.data[1:7000,], diag=TRUE, upper=TRUE))

我遇到的问题是我不断收到“无法分配向量...”警告。我已经阅读了足够多的内容,知道 R 无法在我的 PC 上分配足够的连续内存来执行该操作。我的 PC 有 3GB 的 RAM,尽管我尽了最大努力或 rm()'ing 对象,使用 gc(),通过 memory.limit(size=####) 增加我对 R 的内存分配,但它不起作用。

我喜欢我所读到的关于 bigmemory 库的内容。但是,当我尝试安装它时,我收到一条警告,指出它在 R 2.15.2 上不可用。我在这里错过了什么吗?有没有解决的办法?我已经阅读了其他一些用于管理大数据的 R 工具,但没有一个像 bigmemory 这样适合我的任务。

4

2 回答 2

1

我以前在 Windows 上使用过 bigmemory,看来我可以使用它的唯一 R 版本是 2.15.3(它应该通过标准调用 install.packages 轻松安装)。升级到 R 3.0.x 后,windows 的 bigmemory 支持似乎“暂时中止”(参见http://cran.r-project.org/web/packages/bigmemory/NEWS)。我也无法让它在 R 2.15.2 或更早版本上运行;我总是遇到像你提到的错误。

我的解决方案是在我的 Windows 机器上安装 R 2.15.3 和最新版本的 R。我将 R 2.15.3 用于 bigmemory 并在不使用时切换回 R 3.1.0。这很痛苦,但大内存是值得的 :)

于 2014-06-08T14:12:48.973 回答
0

对我来说,这有效:

install.packages(c("BH","biglm"))
library(devtools)
devtools::install_github('kaneplusplus/bigmemory')
library(bigmemory)

PS你也可以library(Rdsm)在Windows上安装使用

devtools::install_github('tomwenseleers/Rdsm')
library(Rdsm)
于 2015-08-25T16:13:51.887 回答