R xts:不同日期的相同日内时间范围子集
我想通过只选择文件中所有不同日期的R xts:不同日期的相同日内时间范围子集,r,subset,xts,R,Subset,Xts,我想通过只选择文件中所有不同日期的09:00:00.000到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 1
09:00:00.000到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
我该怎么做 因为您要求的是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"]
搜索现有答案时,会发现大量重复的答案。我想问的是如何在所有日期中对时间范围进行子集,而不是在xts_obj[“2017-05-02 09:00:00.000::2017-05-02 17:00:00.000”]
的正常情况下,因为我知道如何指定特定日期的范围。我说的是跨越不同日期。提取时间字段,然后对其进行过滤。就像我告诉你的,它还是一个复制品。您可以将复合比较与逻辑索引[time>=tmin&time>一起使用
t2[.indexhour(t2) %in% seq(9,17)]