我正在进行一些分析,要求我从一个7000x182阵列计算一个距离矩阵(现在是Euclidean,可能是Mahalanobis),这将导致一个7000x7000矩阵(假设我也采用了矩阵的上半部分) 。
z <- as.matrix(dist(training.data[1:7000,], diag=TRUE, upper=TRUE))
我遇到的问题是我不断收到“无法分配矢量......”的警告。我已经阅读了足够的知道R无法在我的PC上分配足够的连续内存来执行操作。我的PC有3GB的RAM,尽管我尽了最大的努力或rm()'对象,使用gc(),通过memory.limit(size = ####)增加我的内存分配,它不起作用。
我喜欢我读过的关于bigmemory库的内容;但是,当我尝试安装它时,我得到一个警告,它在R 2.15.2上不可用。我在这里错过了什么吗?有没有解决的办法?我已经阅读了一些其他用于管理大数据的R工具,但似乎没有像bigmemory那样适应我的任务。
答案 0 :(得分:1)
之前我在Windows上使用过bigmemory,看起来我唯一可以使用它的R版本是2.15.3(它应该通过标准调用install.packages轻松安装)。在升级到R 3.0.x之后,似乎对Windows的大量支持是暂时停止&#34; (见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。这是一种痛苦,但是大记忆是值得的:)
答案 1 :(得分:0)
对我而言,这有效:
install.packages(c("BH","biglm"))
library(devtools)
devtools::install_github('kaneplusplus/bigmemory')
library(bigmemory)
PS你也可以使用
在Windows上安装library(Rdsm)
devtools::install_github('tomwenseleers/Rdsm')
library(Rdsm)