如何使用R从二进制文件读取浮点数据

Ang*_*lei 3 binary r

我知道R中没有浮点数。因此,如何从二进制文件读取浮点数据。C中的数据结构如下

typedef struct
{
    int date;
    int open;
    int high;
    int low;
    int close;
    float amount;
    int vol;
    int reservation;
} StockData; 

to.read = file(filename, "rb");
line1=readBin(to.read,  "int",8);
Run Code Online (Sandbox Code Playgroud)

数量不是正确的值。如何获得浮点数的正确值?

nic*_*ola 6

您的C结构由5个整数值和一个浮点数组成,然后再由2个整数组成。因此,您可以拨打readBin三次:

 line1<-c(readBin(to.read,"int",5), 
          readBin(to.read,"double",1,size=4),
          readBin(to.read,"int",2))
Run Code Online (Sandbox Code Playgroud)

您可以float通过将size参数设置为来处理该值4,因为a float的大小为4个字节(而不是a的8个字节double)。