我正在尝试使用R来读取包含六个简单数据项(double类型)的二进制文件,我知道其他C代码正确写入文件的位置:
x=-2.798281e-01 y=-2.044148e+00 z=9.155162e-02 vx=0.000000e+00 vy=0.000000e+00 vz=0.000000e+00
然而,当我在R
中使用这些行时bincon = file('mybinaryfile', 'rb')
parcoords = readBin(bincon, double(),6)
我得到的只是这个(只有三个错误的数字!):
> parcoords
[1] -2.353189e+00 5.117028e-315 0.000000e+00
问题是什么?
答案 0 :(得分:2)
好吧,你的文件似乎是24个字节长,所以如果你有6个值,每个必须只有4个字节长,而R要求双倍值为8个字节长。您可以将尺寸参数指定为readBin()
readBin(bincon, double(), 6, size=4)
# [1] -0.27982813 -2.04414845 0.09155162 0.00000000 0.00000000 0.00000000