2016-07-29 42 views
0

我XTS物體看起來是這樣的:刪除條目至週日上XTS對象

      BID  OFR  PRICE 
    2015-01-01 13:15:00 1.48168 1.48285 0.3935712 
    2015-01-01 13:20:00 1.48013 1.48102 0.3924305 
    2015-01-01 13:25:00 1.47922 1.48012 0.3918190 
    2015-01-01 13:30:00 1.47947 1.47970 0.3917616 
    2015-01-01 13:35:00 1.48019 1.48046 0.3922617 
     . 
     . 
     . 
     . 

我的時區設置爲EST。我如何從東部時間(東部時間)的星期五17:05到復活節時間(美國東部時間)的星期日17:00刪除條目?先謝謝你。

回答

1

瀏覽xts的文檔?.indexwday

你能做到這一點,讓你想爲你指定的(外匯)交易時間的數據,假設dat包含您xts的時間序列:

is_fri <- .indexwday(dat) == 5 & (.indexhour(dat) >= 18 | .indexhour(dat) == 17 & .indexmin(dat) >= 5) 
is_sat <- .indexwday(dat) == 6 
is_sun <- .indexwday(dat) == 0 & .indexhour(dat) <= 16 

xts_data_you_want <- dat[!(is_fri | is_sat | is_sun)] 

.indexwday返回1表示星期一,2表示星期二,等等,對於xts對象中的時間戳,還應該爲.indexmin,.indexhour返回自解釋數值。

作爲支票,你可以做weekdays(index(dat)).indexwday正在返回你期望的某些時間戳。

+0

根據'.indexwday(dat)'星期日等於'== 0'。你必須用'is_sun < - .indexwday(dat)== 0&.indexhour(dat)<= 16'來切換'is_sun < - .indexwday(dat)== 7&.indexhour(dat)<= 16'。在運行代碼之前,運行'Sys.setenv(TZ =「EST」)'是必不可少的,因爲該系列是在這個時區實現的。 – Greconomist