Преобразовать табуляцию с разделителями в XTS в R?

У меня есть файл с разделителями табуляции в формате:

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

Я использую эту функцию для создания XTS в R.

> 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? Спасибо


person heavy rocker dude    schedule 24.08.2012    source источник
comment
?read.zoo содержит множество примеров и может включать пример того, как это сделать.   -  person Joshua Ulrich    schedule 24.08.2012
comment
В виньетке zoo-read также есть дополнительные примеры.   -  person G. Grothendieck    schedule 24.08.2012
comment
Ваш format arg не будет работать, потому что дата и время находятся в двух разных столбцах. Руководство и виньетка дают примеры того, как комбинировать дату / время из двух разных столбцов.   -  person Joshua Ulrich    schedule 25.08.2012
comment
Так что я думаю, что пример 4 лучший? Спасибо хоть   -  person heavy rocker dude    schedule 25.08.2012
comment
Пример 4 работает. cran.r-project.org/web/packages/ zoo / vignettes / zoo-read.pdf   -  person heavy rocker dude    schedule 25.08.2012
comment
Можете ли вы добавить решение в качестве ответа, чтобы помочь другим, кто найдет ваш вопрос с помощью поиска?   -  person Joshua Ulrich    schedule 25.08.2012


Ответы (2)


Поскольку 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
person CHP    schedule 03.04.2013

Это был пример 4, который работает в cran.r-project.org/web/packages/zoo/vignettes/zoo-read.pdf Спасибо Джошуа Ульриху за помощь

person Community    schedule 24.08.2012
comment
Дай мне передохнуть. Покажите нам, как получить данные из примера, которые вы указали в вопросе, в объект xts. - person GSee; 25.08.2012