我学了 8 个月的 python,R 的新手,有一个二进制文件,我可以读取
二进制数据并将其更改为列表(在 python 中,数组是列表)。
数据文件(名为 test )位于:
https
://www.box.com/s/0g3qg2lqgmr7y7fk5aut
结构为:
每 4 个字节是一个整数,因此在 python 中使用 unpack 读取它
import struct
datafile=open('test','rb')
data=datafile.read(32)
result=[]
while data:
result.append(list(struct.unpack('iiiiiiii',data)))
data=datafile.read(32)
如何读取 R 中的二进制数据?
Paul Hiemstra 帮助我完成了 R 中的代码,这让我受益匪浅。
datafile="test"
totalsize=file.info(datafile)$size
lines=totalsize/32
data=readBin("test",integer(),n=totalsize,size=4,endian="little")
result=data.frame(matrix(data,nrow=lines,ncol=8,byrow=TRUE))
colnames(result)=c(date,"x1","x2","x3","x4","x5","x6","x7")
还有我想解决的问题。在这里,我用n=totalsize完全读取所有数据,如果数据很大,内存不够容纳,如何表达:从第1001个字节到第2000个字节读取数据?如果n=1000,表示从第1个到第1000个读取数据,如果n=2000,表示从第1个到第2000个读取数据,那么从第1001个到第2000个读取数据怎么样?R中是否有文件指针?当我读取第1000个二进制数据时,文件指针在第1000个位置,现在使用命令readBin(“test”,integer(),n = 1000,size = 4,endian =“little” ) 读取第 1001 到第 2000 的数据?