xts:子集在不同日期的相同日内时间范围

时间:2017-06-10 05:17:38

标签: r subset xts

我将通过仅选择文件中所有不同日期的09:00:00.000 to 17:00:00.000范围内的数据来对xts对象(数据)进行子集化。

Timestamp                Col1  Col2  Col3  Col4 
2017-05-02 08:50:47.457 12345 12345 12345 12345 
2017-05-02 09:50:49.845 12345 12345 12345 12345
2017-05-02 16:50:49.845 12345 12345 12345 12345
2017-05-02 22:50:50.085 12345 12345 12345 12345
2017-05-03 08:50:47.457 12345 12345 12345 12345 
2017-05-04 09:50:49.845 12345 12345 12345 12345
2017-05-04 16:50:49.845 12345 12345 12345 12345
2017-05-04 22:50:50.085 12345 12345 12345 12345

我该怎么做?

1 个答案:

答案 0 :(得分:1)

由于您要求使用xts解决方案,因此非常简单。只需使用括号进行子集化。

t<-read.table("test.csv", sep=";", header = T)
library(xts)
t2<-xts(t[,2:5], order.by = as.POSIXct(t$Timestamp, tz="UTC","%Y-%m-%d %H:%M:%S"))
t2["T09:00/T17:00"]

使用nice内置索引函数的替代版本(这可用于更复杂的操作):

 t2[.indexhour(t2) %in% seq(9,17)]