【发布时间】:2012-09-04 18:47:02
【问题描述】:
我学了 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 的数据?
【问题讨论】:
-
尝试润色您的语言,主要是缺少大写字母,以及不正确使用逗号等。
标签: r