2011-12-16 5 views
-4

Я пытаюсь сохранить объект в текстовый файл с помощью команды write.table(ESH2, "c:/ESH2.txt", sep=","). Проблема в том, что сохраненные временные ряды не содержат значения даты и времени, которые я загрузил. Я использовал пакет twsInstrument и команду getBAT (ESH2)Как использовать функцию write.table в R?

Данные у меня есть при загрузке его в R с помощью команды load(file = "C:/ESH2.Rdata")

   ES.Bid.Price ES.Ask.Price ES.Trade.Price ES.Mid.Price ES.Volume 
1323700200  1237.25  1237.50  1237.50  1237.375  6954 
1324057980  1210.25  1210.50  1210.25  1210.375  3792 
1324058040  1210.50  1211.00  1211.00  1210.750  3305 
......... 
......... 
......... 
1324058100   NA   NA    NA   NA   823 

attr(,".indexCLASS") 
[1] POSIXct POSIXt 
attr(,".indexTZ") 
[1] 
attr(,"from") 
[1] 20111211 23:59:59 
attr(,"to") 
[1] 20111216 23:59:59 
attr(,"src") 
[1] IB 
attr(,"updated") 
[1] "2011-12-16 18:54:55 CET" 

Первый столбец должен показать дата_время и не 1323700200.

Я ищу простой способ загрузить данные один раз в неделю и объединить данные.

p.s Да, я могу прочитать учебники/книги, чтобы выполнить это, и да, я сделаю это, но проблема в том, что мне не хватает времени. Я хочу начать собирать данные на этой неделе, потому что интерактивные брокеры ограничивают запросы данных 1min data = 5DAYS maximum. Я благодарен за любую помощь и предложения.

+0

Может пожалуйста, опубликовать воспроизводимый пример? http://stackoverflow.com/q/5963269/687713 –

+0

Вам нужно предоставить более подробную информацию (например, [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great- г-воспроизводимый-пример)). –

+0

Это все еще сложно воспроизвести, потому что даже после установки 'twsInstrument' и всех его зависимостей я считаю, что мне по-прежнему нужна учетная запись Interactive Brokers для использования' currency («USD»); getBAT ("ESH2") '. Тем не менее, я думаю, теперь, зная, что ваш объект является объектом 'xts', поможет ... –

ответ

1

Если ваша единственная цель состоит в том, чтобы сохранить объект, так что вы можете получить доступ к нему из R в будущем, то с помощью

save(ESH2, file = "C:/ESH2.Rdata") # or whatever you want to call the saved file 

сделает это за вас. Вы можете получить объект обратно позже с помощью нагрузки:

load(file = "C:/ESH2.Rdata") 

Но, как упоминалось в комментариях, если вы хотите помочь в получении write.table или write.csv решение для работы, то вам необходимо предоставить больше информации ,

+2

Вы должны добавить эту информацию в свой вопрос (отредактировав ее), а также показывая результат 'str (ESH2)'. –

5

У вас, вероятно, есть объект xts или zoo, и вам необходимо использовать функцию write.zoo. Если я прав относительно структуры объекта ESH2, то данные, которые вы вызываете «первый столбец», на самом деле являются именами ростов, которые в zoo/xts parlance являются «индексом», в то время как к данным можно получить доступ с помощью coredata и является матричным объектом.

Из примеров на странице чтения/write.zoo:

Lines <- "CVX 20070201 9 30 51 73.25 81400 0 
CVX 20070201 9 30 51 73.25 100 0 
CVX 20070201 9 30 51 73.25 100 0 
CVX 20070201 9 30 51 73.25 300 0 
CVX 20070201 9 30 51 73.25 81400 0 
CVX 20070201 9 40 51 73.25 100 0 
CVX 20070201 9 40 52 73.25 100 0 
CVX 20070201 9 40 53 73.25 300 0" 

z <- read.zoo(textConnection(Lines), 
    colClasses = c("NULL", "NULL", "numeric", "numeric", "numeric", "numeric", 
     "numeric", "NULL"), 
    col.names = c("Symbol", "Date", "Hour", "Minute", "Second", "Price", 
     "Volume", "junk"), 
    index = 1:3, # do not count columns that are "NULL" in colClasses 
    FUN = function(h, m, s) times(paste(h, m, s, sep = ":")), 
    FUN2 = function(tt) trunc(tt, "00:00:05"), 
    aggregate = mean) 
# The only material I added. 
write.zoo(z) 
"Index" "Price" "Volume" 
09:30:50 73.25 32660 
09:40:50 73.25 166.666666666667 
+1

Довольно впечатляющий вывод моего дорогого dwin :). Я понятия не имел, что делал ОП ... –