本文介绍了如何从动物园的 2 列中读取日期时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a csv file contains minutes exchange rate

<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 列中读取日期时间?

Trying to do below but not working for me. How to read date time from 2 columns?

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

推荐答案

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

You need to specify colClasses to keep the leading zeros on the third column, and to remove the first column (since you can't have both numbers and characters in a zoo object). Note that the default action if multiple index columns are specified is to paste them together with a space between them.

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)))

修改:简化.

这篇关于如何从动物园的 2 列中读取日期时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 02:57