全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5783 10
2008-08-19
S-Plus可以通过ReadRaw读取二进制数据文件。但是,好像只能以同一种数据格式读。
如果这个二进制数据文件,例如股票行情的日线文件,包含几列数据,一列长整形long、一列single、一列byte,应该怎么读呢?
网络上整个找不到答案。所有的说明书也都查过。
请教各位大侠。

[此贴子已经被作者于2008-8-20 1:14:39编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2008-8-19 13:52:00

R 的readBin 可以吗?

上传一个日线文件看看。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-8-20 00:01:00

附件解压缩后是一个股票的日线数据文件。
已知它的数据结构如下(VBA):
  Type MyType
    a1 As Long  '标示码
    a2 As Long  '日期
    a3 As Single  '开盘价
    a4 As Single  '最高价
    a5 As Single  '最低价
    a6 As Single  '收盘价
    a7 As Single  '成交金额
    a8 As Long    '成交量
End Type

查阅了帮助中关于ReadBin的介绍和示例,好像也还是用于读取同质的数据。


多谢大侠援手。

238259.rar
大小:(7.32 KB)

 马上下载

本附件包括:

  • sh600686.day


[此贴子已经被作者于2008-8-20 0:07:39编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-8-20 01:40:00

明天试一下哈

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-8-20 10:49:00

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

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

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-8-20 22:33:00

luzifer牛人啊。

我一开始还纳闷,read.DET.data这个命令在S-Plus中不存在。

仔细学习才明白,luzifer的意思是自己写个接口函数。还提供了示范代码。

非常感谢。我会认真学习编写一下代码。

顺便说一下,这个日线文件的数据格式就是3楼所说的数据格式。

多谢luzifer花费时间。

[此贴子已经被作者于2008-8-20 22:37:47编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群