Как использовать функцию write.table в R? - PullRequest
0 голосов
/ 16 декабря 2011

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

Данные, которые есть у меня при загрузке в 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"

В первом столбце должно отображаться Date_Time , а не 1323700200.

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

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

Ответы [ 2 ]

5 голосов
/ 16 декабря 2011

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

Из примеров на странице read / 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 голос
/ 16 декабря 2011

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

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

.Позже вы можете вернуть объект снова, используя load:

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

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

...