2011-12-16 74 views
-4

我正在嘗試使用命令write.table(ESH2, "c:/ESH2.txt", sep=",")將對象保存到文本文件。問題是保存的時間序列不包含我下載的日期和時間值。我用包twsInstrument和命令getBAT(ESH2)如何在R中使用write.table函數?

的數據與命令加載到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。我很感謝任何幫助和建議。

+0

能請張貼重複的例子? http://stackoverflow.com/q/5963269/687713 –

+0

你需要提供更多的細節(例如[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great- R-再現的-示例))。 –

+0

這仍然很難重現,因爲即使在安裝'twsInstrument'及其所有依賴關係之後,我發現我仍然需要Interactive Brokers帳戶才能使用貨幣(「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或動物園對象,需要使用write.zoo函數。如果我關於「ESH2」對象的結構是正確的,那麼你稱之爲「第一列」的數據實際上就是在動物園/ xts用語中是「索引」的rownames,而數據可以通過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 :)。我不知道OP在做什麼...... –