2011-09-20 74 views
3

我試圖使用quantmod中的「to.weekly」函數將每日股價數據(僅限收盤價)彙總爲每週股價數據。該XTS對象foo持有每天的股價數據,A股從週一開始3 2011年1月,並在週一結束20 2011年9月要聚合我用這個每日數據:使用quantmod'to.weekly'函數彙總每日數據會創建每週數據星期一至星期五結束

tmp <- to.weekly(foo)

上述方法在tmp成功現在按照Quantmod文檔包含一系列每週OHLC數據點。問題在於該系列從2011年1月3日星期一開始,接下來的每週也將在週一開始,例如1月10日星期一,1月17日星期一等。我曾預計本週將於週五結束,以便每週系列從1月7日星期五開始,並於9月16日星期五結束。

我已經嘗試調整數據的開始和結束,並使用'endof'或'startof'和indexAt參數,但是我無法讓它返回到星期五結束的一週。

我很感激收到的任何見解。 (對不起,我找不到任何方式,使數據出現下面附上dput文件)

富:

2011-01-03 2802 
2011-01-04 2841 
2011-01-05 2883 
2011-01-06 2948 
2011-01-07 2993 
2011-01-10 2993 
2011-01-11 3000 
2011-01-12 3000 
2011-01-13 3025 
2011-01-14 2970 
2011-01-17 2954 
2011-01-18 2976 
2011-01-19 2992 
2011-01-20 2966 
2011-01-21 2940 
2011-01-24 2969 
2011-01-25 2996 
2011-01-26 2982 
2011-01-27 3035 
2011-01-28 3075 
2011-01-31 3020 

TMP:

  foo.Open foo.High foo.Low foo.Close 
2011-01-03  2802  2802 2802  2802 
2011-01-10  2841  2993 2841  2993 
2011-01-17  3000  3025 2954  2954 
2011-01-24  2976  2992 2940  2969 
2011-01-31  2996  3075 2982  3020 

回答

1

我拿出東西只產生密切的價值觀,也許它可以進一步回到OHLC系列。

假設fooxts對象,我們首先創建星期五的的indeces的矢量:

fridays = as.POSIXlt(time(foo))$wday == 5 

然後我們在前面加上其與0

indx <- c(0, which(fridays)) 

並使用period.apply

period.apply(foo, INDEX=indx, FUN=last) 

結果:

  [,1] 
2011-01-07 2993 
2011-01-14 2970 
2011-01-21 2940 
2011-01-28 3075 
+0

謝謝阿納託利。我已將代碼調整爲包裝代碼,並用幾個xts對象對其進行了測試,並且它似乎很好。 – SlowLearner

相關問題