私はPythonを8か月間学びました、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でバイナリデータを読み取るにはどうすればよいですか?
私はPaulHiemstraの助けを借りて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までのデータを読み取るには?