将制表符分隔符转换为R中的XTS



我有一个以制表符分隔的文件,格式为:

Date    Time    Last    LastSize    TotVol  Bid Ask TickID  BidSize AskSize
8/23/2012   0:00:00 0.95711 1   20670   0.95711 0.95742 0   0   0
8/23/2012   0:00:04 0.9571  1   20671   0.9571  0.9574  0   0   0

我正在使用该函数在R.中创建一个XTS

> EURUSD <- as.xts(read.zoo("C:\Users\caustic\Documents\DTN\IQFeed\EURUSD.FXCM_1.txt",
+                           sep='t', 
+                           tz='',   
+                           header=T,
+                           format='%d/%m/%Y %H:%M:%S'))

我得到一个错误:错误为.POSIXlt.字符(x,tz,…):字符串不是标准的明确格式

问题是:如何将数据和时间组合成所需的POSIX格式?感谢

由于OP还没有真正更新他的答案,我将添加一种方法。要将制表符分隔(或CSV)内容转换为xts,我更喜欢先将数据读取为正常数据帧,然后使用.xts函数将data.frame转换为xts

不过,.xts目前是一个未记录的函数。

require(xts)
filecontent <- 'Date    Time    Last    LastSize    TotVol  Bid Ask TickID  BidSize AskSize
8/23/2012   0:00:00 0.95711 1   20670   0.95711 0.95742 0   0   0
8/23/2012   0:00:04 0.9571  1   20671   0.9571  0.9574  0   0   0'
DF <- read.table(text = filecontent, header = TRUE, stringsAsFactors = FALSE)
DFINDEX <- paste(DF$Date, DF$Time, sep = " ")
DF.XTS <- .xts(x = DF[, 3:10], index = as.POSIXct(DFINDEX, format = "%m/%d/%Y %H:%M:%S", tzone = "GMT"))
DF.XTS
##                        Last LastSize TotVol     Bid     Ask TickID BidSize AskSize
## 2012-08-23 08:00:00 0.95711        1  20670 0.95711 0.95742      0       0       0
## 2012-08-23 08:00:04 0.95710        1  20671 0.95710 0.95740      0       0       0

示例4适用于cran.r-project.org/web/packages/zoo/vignettes/zoo-read.pdf感谢Joshua Ulrich对的帮助

最新更新