【问题标题】:How to read date time from 2 columns with zoo?如何从动物园的 2 列中读取日期时间?
【发布时间】:2014-03-08 00:06:42
【问题描述】:

我有一个包含分钟汇率的 csv 文件

<TICKER>,<DTYYYYMMDD>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
EURUSD,20110103,000000,1.3353,1.3354,1.3353,1.3354,4
EURUSD,20110103,000100,1.3355,1.3356,1.3355,1.3356,4
EURUSD,20110103,000200,1.3355,1.3356,1.3350,1.3350,4
EURUSD,20110103,000300,1.3349,1.3349,1.3348,1.3348,4
EURUSD,20110103,000400,1.3347,1.3348,1.3347,1.3348,4
...

尝试在下面做,但不适合我。如何从 2 列中读取日期时间?

rate <- read.zoo("data.csv",sep=",",tz="",header=T, format='%Y%m%d %H%M%S', index = 2:3)

以上代码生成错误:index has 5 bad entries at data rows: 1 2 3 4 5

【问题讨论】:

    标签: r time-series zoo


    【解决方案1】:

    您需要指定colClasses 以保留第三列的前导零,并删除第一列(因为动物园对象中不能同时包含数字和字符)。请注意,如果指定了多个索引列,则默认操作是将它们粘贴在一起并在它们之间留一个空格。

    Lines <- "<TICKER>,<DTYYYYMMDD>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
    EURUSD,20110103,000000,1.3353,1.3354,1.3353,1.3354,4
    EURUSD,20110103,000100,1.3355,1.3356,1.3355,1.3356,4
    EURUSD,20110103,000200,1.3355,1.3356,1.3350,1.3350,4
    EURUSD,20110103,000300,1.3349,1.3349,1.3348,1.3348,4
    EURUSD,20110103,000400,1.3347,1.3348,1.3347,1.3348,4
    "
    
    rate <- read.zoo(text=Lines, sep=",", header=TRUE, 
      index.column=1:2, format="%Y%m%d %H%M%S", tz="", 
      colClasses = rep(c("NULL", "character", "numeric"), c(1, 2, 5)))
    

    修改:简化。

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 2013-05-15
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      相关资源
      最近更新 更多