gpt4 book ai didi

r - 在 Matlab 和 R 之间共享大型数据集

转载 作者:太空宇宙 更新时间:2023-11-03 19:10:08 24 4
gpt4 key购买 nike

我需要一种相对有效的方式在 Matlab 和 R 之间共享数据.

我检查了SaveRMATLAB R-link , 但是 SaveR formats Matlab 的二进制数据先作为文本字符串,然后将它们打印到 ASCII 文件,这对于大型数据集效率不高,而且 MATLAB R-link 仅适用于 Windows(它使用基于 COM 的接口(interface))。

更新:

Dirk 发布了一个列表,列出了似乎比 SaveRMatlab R-link 更好的解决这个问题的方法。我最近也了解到RAM disks (有关一些实现示例,请参阅 herehere),并认为它们可能会进一步促进 Matlab 和 R(或类似计算环境)之间共享大型数据集的任务。这让我想到了以下问题:

假设数据适合 Matlab 或 R 的 native 数据容器中的机器内存:

  1. 是否列出了任何解决方案更适合 RAM 磁盘?

  2. 还有没有其他的需要考虑的因素处理 RAM 磁盘时的帐户而不是使用二级存储解决方案?

谢谢!

最佳答案

几个想法,并警告说我对事物的 R 方面了解更多:

  • TR.matlab CRAN 上的包可以提供帮助:这个包提供了读取和写入 MAT 文件的方法。它还可以与在本地或远程主机上运行的 Matlab v6 或更高版本进行通信(评估代码、发送和检索对象等)

  • HDF5 ,正如你所建议的,是一种可能性,但我听说 CRAN 包中的 R 支持 hdf5有点基础

  • NetCDF可能是另一种选择; CRAN 有包 RNetCDF , ncdfncdf4

  • 使用数据库,尤其是像 SQLite 或 H4 这样的基于文件的轻型数据库,它们都支持 R

  • 使用通用的序列化/反序列化格式; R 通过 RProtoBuf 支持 Google Protocol Buffers谷歌指向protobuf-matlab对于 Matlab

  • 自己写!特别是当你只需要像大矩形矩阵这样的基本东西时,没有什么比直接二进制写入更好的了;几年前我为 Octave(接近 Matlab)做过一次。您可以通过 mex 文件扩展 Matab; R 有它的 API 和助手,比如 Rcpp .您的数据集越大,在您保存转化时这看起来就越有吸引力。

关于r - 在 Matlab 和 R 之间共享大型数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4771144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com