问题标签 [r-bigmemory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
716 浏览

r - 是否可以从 bigmemory 包中对 big.matrix 对象进行转置?

我想执行一个非常大的 bigmemory big.matrix B的转置,以便我可以计算AB T。这在大内存中可能吗?更重要的是,我怎样才能找到有关此的文档?在这篇关于 bigmemory 的论文的第 5 页http://www.stat.yale.edu/~mjk56/temp/bigmemory-vignette.pdf上,作者说该包还支持诸如 prod()、colmean()、colsd 等操作() 等,但我找不到关于此的文档。

0 投票
0 回答
181 浏览

r - R Bigmemory矩阵Kmeans从数据帧转换

我是使用 R 进行 k-means 聚类的新手,我尝试了一个将两个文件聚类在一起的示例应用程序,并成功使用了以下代码。但是由于我使用的原始文件比这些初始测试文件大得多,所以下面的代码使用 RAM 已经结束了,我认为在更大的文件上使用它是低效的。

我遇到了带有 bigkmeans 函数的 bigmemory 和 biganalytics。但我正在努力翻译以上内容以使用 bigmatrix。这是我现在正在处理的代码。

用零替换 NA 是行不通的,如果我忽略该步骤,那么它会由于 NA 而产生单个集群。并且 cbinds,列添加也不起作用。我想我错过了一些更简单的方法,但从 bigmemory/matrix 文档中无法理解。你能帮忙吗?

0 投票
1 回答
643 浏览

r - 使用 bigmemory 在 R 中加载大型数据集的内存问题

我有一个大文本文件(> 1000 万行,> 1 GB),我希望一次处理一行以避免将整个内容加载到内存中。处理完每一行后,我希望将一些变量保存到一个big.matrix对象中。这是一个简化的示例:

其中x.csv包含

按照这里的建议http://adv-r.had.co.nz/memory.html我打印了我的big.matrix对象的内存地址,它似乎随着每次循环迭代而改变:

  1. 可以big.matrix就地修改对象吗?

  2. 有没有更好的方法来加载、处理和保存这些数据?目前的方法很慢!

0 投票
2 回答
10961 浏览

r - R中的并行foreach共享内存

问题描述:

我有一个大矩阵c,加载在 RAM 内存中。我的目标是通过并行处理对其进行只读访问。但是,当我使用doSNOWdoMPIbig.matrix等创建连接时,使用的 ram 数量会急剧增加。

有没有办法正确创建共享内存,所有进程都可以从中读取,而无需创建所有数据的本地副本?

例子:

RAM: <code>foreach</code> 期间的 Ram 使用情况 在上图中,您可能会发现内存增加了很多,直到foreach结束并被释放。

0 投票
0 回答
253 浏览

r - bigmemory 包中的 filebacked.big.matrix 是内存中性的吗?

我一直在使用 filebacked.big.matrix 来存储一个非常大的矩阵(约 100 万 x 2 万)。我正在研究一个内存非常高的集群,但不是那么多。我以前使用过 ff 包,它工作得很好,并且尽管矩阵大小保持内存使用一致,但是当我超过矩阵中的 10^32 个项目时它就死了(R 社区确实需要解决这个问题)。filebacked.big.matrix 最初似乎工作得很好并且通常运行没有问题,但是当我检查内存使用情况时,它有时会飙升到 100 GB。我小心地一次只读取/写入矩阵相对较少的行,所以我认为在任何给定时间都不应该有太多的内存。

它是否会进行某种自动内存缓存或导致内存使用量增加的事情?如果是这样,可以禁用或限制此缓存吗?高内存使用对集群造成了一些令人讨厌的副作用,所以我需要一种内存中性的方法来做到这一点。我检查了 filebacked.big.matrix 帮助页面,但在那里找不到任何相关信息。谢谢!

更新:
我也在使用 bigmemoryExtras。
我之前错了,当我循环遍历整个矩阵时,问题就发生了,将它读入一个不同的、较小的 file.backed 矩阵,如下所示:

物理内存使用量最初非常低(虚拟内存非常高)。但是在运行这个循环时,甚至在它完成之后,它似乎只是将大部分矩阵保留在物理内存中。我需要它一次只将一小块矩阵保存在内存中。

更新 2:
这让我有点困惑:集群指标和top命令说它正在使用大量内存(~80GB),但 gc() 命令说内存使用量从未超过 2GB。该free命令表示使用了所有内存,但在 -/+ buffers/cache 行中表示总共只使用了 7GB。

0 投票
0 回答
114 浏览

r - 使用 bigmemory 包上传 csv 文件

我有一个 csv 文件,想用“bigmemory”包打开它。

我正在使用 R 2.15.3。

这是代码:

在我这样做之后,R崩溃了。我不知道数据是什么样的。

如果有人有任何想法,那将非常有帮助。我还研究了 R 2.15.3 是唯一支持此功能的版本,如果这不是真的,那么很高兴知道。谢谢

0 投票
0 回答
101 浏览

r - 在 r 中使用“mapply”和“bigmemory”

我在 R 中有 3 个非常大的向量(一个是本金支付,一个是利率,一个是条款)。我需要通过一个函数(来自 FinCal 包的 pmt 函数)传递所有可能的组合。我将每个向量放入一个大矩阵(来自 bigmemory 包),但无法在大矩阵上运行 mapply(收到“这个 S4 类不是子集”)。大矩阵中唯一的槽是指针,我无法用@指定它。有没有办法遍历一个大矩阵来执行这样的计算或任何其他建议?大约有 3.5 亿种组合。

0 投票
0 回答
1261 浏览

r - 在 R 中反转 big.matrix 对象

我有一个 39,547 x 39,547 方差矩阵 V,存储为 big.matrix 对象,因为存储这种大小的矩阵所需的内存超出了我的机器的能力。

然后我需要计算z^T %*% V^(-1) %*% z,其中 z 是长度为 39,547 的向量,因此我需要执行

1) chol(V),然后是 backsolve 和 crossprod,或者 2) solve(V)(最好不要)

但是,这些函数不适用于 big.matrix 对象,并且在 bigalgebra 包中似乎只有将这些对象相乘的方法。

我还尝试通过 big.PCA 执行此计算:

有没有人有使用大型 big.matrix 对象执行此类计算的经验?

0 投票
0 回答
115 浏览

r - 如何在 R3.1.0 中安装 biganalytics_1.1.3 包?

请帮忙,我无法在我的 windows 7 32 位系统中安装 biganalytics_1.1.3

我什至在 cmd 提示符下尝试了以下命令

它显示错误

也可以选择install.package

它仍然显示相同的错误

0 投票
2 回答
140 浏览

c - R包开发:如何查看SEXP的类型是否为“big.matrix”?

我正在开发一个带有低级 C 代码的 R 包。假设我的C代码中有以下功能。

我需要知道 R 对象obj是常规对象matrix还是big.matrix(使用 R 包bigmemory),以便我可以调用不同的函数进行计算。

这可能吗?我怎么知道的类类型obj