8

我最近发现了包的神奇之处bigmemoryff并且filehash可以处理非常大的矩阵。

如何处理非常大 (300MB++) 的列表?在我的工作中,我每天都在处理这些列表。save()我可以在任何地方用& hacks做创可贴解决方案,load()但我更喜欢类似bigmemory的解决方案。像 abigmemory bigmatrix这样的东西是理想的,我使用它基本上与 a 相同,matrix只是它在我的 RAM 中占用了 660 个字节。


这些列表主要是对象(或类似的回归对象)>1000的长度列表。lm()例如,

Y <- rnorm(1000) ; X <- rnorm(1000)
A <- lapply(1:6000, function(i) lm(Y~X))
B <- lapply(1:6000, function(i) lm(Y~X))
C <- lapply(1:6000, function(i) lm(Y~X))
D <- lapply(1:6000, function(i) lm(Y~X))
E <- lapply(1:6000, function(i) lm(Y~X))
F <- lapply(1:6000, function(i) lm(Y~X))

在我的项目中,我将拥有A,B,C,D,E,F必须以交互方式使用的类型列表(甚至更多)。

如果这些是巨大的矩阵,就会有大量的支持。我想知道在任何大型list对象的包中是否有类似的支持。

4

1 回答 1

2

包在磁盘上存储和访问列表。这应该可以工作(如果在我的机器上相当缓慢......):

Y <- rnorm(1000) ; X <- rnorm(1000)

# set up disk object
library(filehash)
dbCreate("myTestDB")
db <- dbInit("myTestDB")

db$A <- lapply(1:6000, function(i) lm(Y~X))
db$B <- lapply(1:6000, function(i) lm(Y~X))
db$C <- lapply(1:6000, function(i) lm(Y~X))
db$D <- lapply(1:6000, function(i) lm(Y~X))
db$E <- lapply(1:6000, function(i) lm(Y~X))
db$F <- lapply(1:6000, function(i) lm(Y~X))

可以使用该[功能访问列表项。有关详细信息,请参见此处:http: //cran.r-project.org/web/packages/filehash/vignettes/filehash.pdf

于 2013-05-22T04:40:03.953 回答