有人可以告訴我這個文件是什麼格式,以及如何在R中讀取它?我被告知它可以在Fortran中讀取,但我沒有Fortran編譯器。 如何讀取R Fortran二進制文件
我試圖找出命令read.fortran()和read.fwf和readBin(),但沒有運氣。
謝謝。
有人可以告訴我這個文件是什麼格式,以及如何在R中讀取它?我被告知它可以在Fortran中讀取,但我沒有Fortran編譯器。 如何讀取R Fortran二進制文件
我試圖找出命令read.fortran()和read.fwf和readBin(),但沒有運氣。
謝謝。
該模式使得它看起來像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字節浮點數。
雖然第一個看起來有點像頭。也許它是一個0x61乘0x8的浮點數組?但是,'文件'命令在我的系統上無法識別它。我只能補充上下文和/或文件本身的請求! – Spacedman
@RafaelResendiz也許你可以問一個比這個更好的新問題,這樣它就不會被關閉,然後自己回答。 –
該文件應該包含什麼內容?只要把它解決到你的知識的極限。至少報告文件擴展名是什麼。 – John
更多的上下文將有所幫助。就像文件名和你認爲它包含的一樣。 – MrFlick
我記得Fortran-binary在頭部有一些時髦的隱藏字節,並假定它們被跳過。我會盡力找到參考 – mdsumner