R readBin没有正确读取二进制数据

时间:2015-02-23 19:00:39

标签: r

我正在尝试使用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

问题是什么?

1 个答案:

答案 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