我已经制表符分隔的文件格式:
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'))
我得到的错误:错误as.POSIXlt.character(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由于工作约书亚乌尔里希求助