2016-07-29 64 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