经管之家首页 答疑首页 R语言 [求助]S-Plus读二进制数据文件的问题
  • 统计与数据分析
  • 经济学
  • 管理学
  • 金融学
  • 财会类
  • 国际贸易类
  • 考研考博与考证
  • 找数据和资料
  • 求职与职场
  • 学术与投稿类
  • 社会生活
  • 其它
S-Plus可以通过ReadRaw读取二进制数据文件。但是,好像只能以同一种数据格式读。
如果这个二进制数据文件,例如股票行情的日线文件,包含几列数据,一列长整形long、一列single、一列byte,应该怎么读呢?
网络上整个找不到答案。所有的说明书也都查过。
请教各位大侠。
luzifer_li
回答于 2008/08/20 10:49

R中的readBin可以用来读取不同的列不同类型的数据,如:

read.DET.data <- function(f) {
 counter <- 1
 col1.v <- c()
 col2.v <- c()
 col3.v <- c()
 
 fid <- file( f ,"rb")
 tempi <- readBin(fid,"int", n=1)
 
 while ( length(tempi) != 0) {
  col1.v[ counter ] <- tempi
  col2.v[ counter ] <- readBin(fid, numeric(),n=1)
  col3.v[ counter ] <- readBin(fid, character(),n=1)
  counter <- counter + 1
  tempi <- readBin(fid, integer(),n=1)
 }
 close( fid )

  data.frame(col1=col1.v,col2=col2.v,col3=col3.v)

  #list(col1.v,col2.v,col3.v)
}

zz <- file("testbin", "wb")
writeBin(1:1, zz)
writeBin(3.23, zz)
writeBin("char1",zz)
writeBin(2:2, zz)
writeBin(2*3.23, zz)
writeBin("char2",zz)
close(zz)

read.DET.data("testbin")

#  col1 col2  col3
#1    1 3.23 char1
#2    2 6.46 char2

但首先你得对你的日线文件的数据格式有了解。呵呵。

 加载中...