【问题标题】:R with xts subsetting: setting two time ranges for each day带有 xts 子集的 R:为每天设置两个时间范围
【发布时间】:2014-06-26 14:25:32
【问题描述】:

如何获取每天两个时间段的数据?

数据:

sample.time = timeDate('2014-01-01 00:00:00')+1*60*(1:3000) 
data = 1:3000
my_xts = xts(data,order.by=sample.time) 

要严格获取1:00 AM01:02 AM 之间的数据,我们可以这样做:

my_xts["T01:00/T01:02"]

结果:

2014-01-01 01:00:00   60
2014-01-01 01:01:00   61
2014-01-01 01:02:00   62
2014-01-02 01:00:00 1500
2014-01-02 01:01:00 1501
2014-01-02 01:02:00 1502
2014-01-03 01:00:00 2940
2014-01-03 01:01:00 2941
2014-01-03 01:02:00 2942

但是每天01:00/01:0202:00/02:00 范围之间的数据呢?到底应该是:

2014-01-01 01:00:00   60
2014-01-01 01:01:00   61
2014-01-01 01:02:00   62
2014-01-01 02:00:00  120
2014-01-02 01:00:00 1500
2014-01-02 01:01:00 1501
2014-01-02 01:02:00 1502
2014-01-02 02:00:00 1560
2014-01-03 01:00:00 2940
2014-01-03 01:01:00 2941
2014-01-03 01:02:00 2942
2014-01-03 02:00:00 3000

【问题讨论】:

    标签: r xts


    【解决方案1】:

    不确定这是否是最快或最方便的方法,但它有效:

    c(my_xts["T01:00/T01:02"], my_xts["T02:00/T02:00:01"])
                        [,1]
    2014-01-01 01:00:00   60
    2014-01-01 01:01:00   61
    2014-01-01 01:02:00   62
    2014-01-01 02:00:00  120
    2014-01-02 01:00:00 1500
    2014-01-02 01:01:00 1501
    2014-01-02 01:02:00 1502
    2014-01-02 02:00:00 1560
    2014-01-03 01:00:00 2940
    2014-01-03 01:01:00 2941
    2014-01-03 01:02:00 2942
    2014-01-03 02:00:00 3000
    

    【讨论】:

    • FWIW,我认为没有更快或更方便的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2014-03-11
    • 2020-05-11
    • 2014-07-16
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多