我在 R 中调用 FORTRAN 程序并分析 FORTRAN 的输出文件,该文件有点大(每次迭代大约 50M)。每次迭代大约需要 50 秒,其中read.table
命令需要 42 秒。由于我需要重复这个程序 100,000 次,我想知道是否有更好的方法来加速它?
例如,是否可以让 FORTRAN 将所有内容保存到内存中并将其传递给 R?
谢谢!
绝对 - 在 Fortran 中将文件写入二进制文件,然后通过readBin()
R 读取它们,这将非常快。但是请确保您检查字节顺序,四字节对八字节浮点等等。
如果您想要一个经过测试的库,请查看各种序列化库,例如 RProtoBuf 等。虽然不确定有多少有 Fortran 绑定...
编辑:根据附加组件页面,Protocol Buffers 和 Fortran 运气不佳。也许像 hdf5 这样的科学格式对你来说会更好。