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