在R中创建大矩阵

3

我该如何在R中创建一个大矩阵,或者如何将一个大矩阵压缩成某个对象?

y <- matrix(rnorm(2e4*2e4),1:20000,1:20000)
Error: cannot allocate vector of size "..." Gb

如何分配此矩阵?


1
我投票关闭此问题,因为不清楚您的问题是什么。您需要帮助安装 bigmemory 软件包,还是需要有关如何处理大型数据集的建议? - Richie Cotton
说实话,使用64位 R、安装更多的 RAM 以及阅读 http://cran.r-project.org/web/views/HighPerformanceComputing.html 可以让你走得更远。 - Richie Cotton
2个回答

3

我不确定为什么要认真回答这个问题,但还是来试试吧...

1.我可以很好地安装bigmemory。也许如果您遇到问题,应该分享错误消息、环境和操作系统,然后请求帮助。

2.也许这只是一个例子:

  y <- outer(1:20000,1:20000)
  Error: cannot allocate vector of size "..." Gb

但是你真的想这样做吗?你不能重构你的代码来多次迭代/重新采样一个较小的矩阵,或者一次读取一点数据,比如...

3. 你考虑过使用RSQlite吗?它非常容易安装,特别是现在有dplyr包,非常用户友好。


1
y <- outer(1:20000,1:20000) 只是一个例子。我正在处理大矩阵。而我在安装包“bigmemory”时遇到的问题是R无法在CRAN中找到特定的包。如果你不相信,可以检查一下。 - And_R
1
@And bigmemory已经在CRAN上了,但是不能在Windows下运行。请参见http://cran.r-project.org/web/packages/bigmemory/index.html - Richie Cotton
作为“bigmemory”的一个很好的替代品,可以使用“ff”包。 - And_R

2

我非常喜欢bigmemory软件包,我是Windows用户。 为了使用这个软件包,我首先选择使用 R 2.15 版本,因为CRAN上还有一个功能可用的Windows版本的bigmemory软件包。对于R 3.0版本,我需要编译那个旧版本以使其能够处理我的大矩阵。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,