2014-06-06 27 views
-3

有人可以告訴我這個文件是什麼格式,以及如何在R中讀取它?我被告知它可以在Fortran中讀取,但我沒有Fortran編譯器。 binary file如何讀取R Fortran二進制文件

我試圖找出命令read.fortran()和read.fwf和readBin(),但沒有運氣。

謝謝。

+0

該文件應該包含什麼內容?只要把它解決到你的知識的極限。至少報告文件擴展名是什麼。 – John

+0

更多的上下文將有所幫助。就像文件名和你認爲它包含的一樣。 – MrFlick

+0

我記得Fortran-binary在頭部有一些時髦的隱藏字節,並假定它們被跳過。我會盡力找到參考 – mdsumner

回答

3

該模式使得它看起來像4字節實體(注意序列00 42的重複出現)。我會猜測浮點值。

再現您的文件到test.dat的前6個值給出了這樣的:

0000000 f0 61 08 00 00 00 00 00 e4 db 00 42 85 e1 00 42 
0000020 fc df 00 42 87 de 00 42 
0000030 

這通過指定大小讀成R與readBin

readBin("test.dat", what=double(), size=4, n=6) 
## [1] 7.698173e-40 0.000000e+00 3.221474e+01 3.222023e+01 3.221873e+01 3.221731e+01 

這些看起來合理,所以我會假設我對4字節浮點數的猜測是正確的。我正在研究一個小端(英特爾)機器。如果你的是big-endian,你需要指定endian='little'以達到相同的結果。

R同意我的C編譯器對這些值的看法,所以它確實是用上面的表達式讀取小端的IEEE 4字節浮點數。

+1

雖然第一個看起來有點像頭​​。也許它是一個0x61乘0x8的浮點數組?但是,'文件'命令在我的系統上無法識別它。我只能補充上下文和/或文件本身的請求! – Spacedman

+0

@RafaelResendiz也許你可以問一個比這個更好的新問題,這樣它就不會被關閉,然後自己回答。 –