2015-11-11 14 views
1

我有我希望轉換爲每日的詳細數據。我可以使用to.daily沒有問題。將每分鐘不同的數據轉換爲每日不同的開始時間R

x = to.daily(x, index=to.daily(x, indexAt="endof", drop.time=FALSE, OHLC=TRUE) 
> head(x) 
        x.Open x.High x.Low x.Close x.Volume 
2007-01-05 23:59:00 1774.50 1813.50 1769.75 1803.50  963 
2007-01-06 07:15:00 1803.50 1803.75 1782.75 1794.25  436 
2007-01-08 23:59:00 1795.00 1800.25 1794.75 1799.75  284 
2007-01-09 23:58:00 1799.75 1809.25 1789.25 1805.25  771 
2007-01-10 23:59:00 1805.25 1815.75 1789.00 1800.50  1027 
2007-01-11 23:59:00 1800.75 1836.00 1795.00 1830.25  962 

問題是我看到的一天的開始是07:30,結束的時間是07:15。所以它在上午7:30開始交易到第二天上午7:15,並關閉15分鐘,然後再次打開。

我已經嘗試使用to.period,然後更改端點,但似乎無法使其工作。

我該如何將每分鐘的數據更改爲每天7點半開放時間和7點15分結束?

+1

有一個'seq.POSIXt'函數應該能夠創建一組適當的中斷來使用'cut.POSIXt'。當數據來自用打印輸出呈現的xts對象時,我不做任何努力來回答問題。 dput輸出更容易處理,這是您的責任,而不是我們的責任。也許有人應該問一個問題,請求一個簡單的函數,當索引列是POSIXt時讀取xts/zoo輸出?這將需要處理兩列「Date time」數據。 –

+0

這是http://stackoverflow.com/q/12087092/841830的副本嗎? –

回答

0

我並不十分熟悉xts對象,但似乎最簡單的做法是首先從時間戳減去7.5小時然後轉換爲每日。既然你的意圖是擺脫時間無論如何這應該是無害的。

+0

有趣的想法,但我認爲夏令時可能會使它不切實際。 –

+0

如果您的時間是本地(交換)時間,那麼這將不起作用。交易所當地時間觀察DST時,您的數據將不正確。 –

相關問題