2011-04-09 17 views
2

舉例來說,假設我想從被格式化爲一個時間序列提取在9點04分00秒每天的價格:如何從R中的1分鐘刻度數據中提取特定的循環時間?

DateTime   | Price 
2011-04-09 09:01:00 | 100.00 
2011-04-09 09:02:00 | 100.10 
2011-04-09 09:03:00 | 100.13 

(注:沒有|在實際的數據,我只是在這裏包括它來說明DateTime是索引,Price是coredata,並且兩者在xts對象內是不同的)

並將這些提取的值放入xts向量中...什麼是最有效的方法去做這個?另外,如果我有五年時間序列的跨界價差,由於時間差異 - 價差會在一年中的不同時間開放(例如冬天上午9點,夏天上午10點),如何才能我會讓R將這些時間差異考慮在內,並將9點至16點或10點至16點30分作爲同一「日」間隔進行識別。

換句話說,我想將日間的1米刻度數據文件轉換爲每日OHLC數據。通常只需使用xts和to.period來做到這一點,但 - 由於上述時間差 - 給出奇怪/奇怪的一天開始/結束時間到期

任何建議非常感謝!

+0

你的問題實際上是兩個獨立的問題(在每天的特定時間提取的價格,並創建一個OHLC系列)。你應該提出第二個問題(「創建一個OHLC系列」)一個單獨的帖子。 – 2011-04-09 12:22:28

回答

3

您可以使用帶有xts subsetting的「T」前綴來指定每天的時間間隔時間間隔。你必須指定一個時間間隔;一次不會奏效。

set.seed(21) 
x <- xts(cumprod(1+rnorm(2*60*24)/100), 
    as.POSIXct("2011-04-09 09:01:00")+60*(1:(2*60*24))) 
x["T09:01:59/T09:02:01"] 
#       [,1] 
# 2011-04-09 09:02:00 0.9980737 
# 2011-04-10 09:02:00 1.0778835 
+0

好的答案 - 這個傑夫的ISO索引是純金。 – 2011-04-09 15:16:29

+0

@Dirk:它比純金更棒;免費。 ;-) – 2011-04-09 15:40:43

相關問題