删除 xts 对象上周五到周日的条目

Delete entries from Friday to Sunday on an xts object

我的 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
       .
       .
       .
       .

我将时区设置为美国东部时间。我如何删除从星期五 17:05 东部时间 (EST) 到星期日 17:00、复活节时间 (EST) 的条目?提前谢谢你。

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 returns 1 表示星期一,2 表示星期二,等等,用于 xts 对象中的时间戳,并且还为 [ 返回了不言自明的数值=17=], .indexhour.

作为检查,您可以执行 weekdays(index(dat)) 以查看 .indexwday 是否返回了您对特定时间戳的预期。