【问题标题】:xts tick data rolling subsetxts 刻度数据滚动子集
【发布时间】:2011-11-01 16:46:35
【问题描述】:

我根据历史报价数据创建了一个 xts 对象,该数据来源于 SQL 数据库。我想创建刻度数据的子集,例如:

显示每天上午 10 点到下午 2:30 之间的报价。这将允许我根据一天中的时间为特定的交易想法创建特定的数据集。我的索引格式如下:

> index(merged[3567,])
[1] "2011-08-01 13:17:59 SAST"

xts 方面的专家能否告诉我如何创建这些子集?任何建议将不胜感激。

【问题讨论】:

    标签: r xts


    【解决方案1】:

    您可以通过时间子集来做到这一点:

    merged["T10:00/T14:30"]
    

    【讨论】:

      【解决方案2】:

      您可以使用difftime 计算从一天开始的小时数,例如:

      diffs <- difftime(time(merged), as.Date(time(merged)), units="hours", tz="SAST")
      

      然后将其作为布尔索引的子集:

      merged[diffs > 10 & diffs < 14.5]
      

      你也可以使用POSIXlt:

      merged[as.POSIXlt(time(merged))$hour > 10]
      

      【讨论】:

      • @E.D.如果您觉得这个 A 解决了您的问题,请考虑接受这个作为正确答案(通过单击变为绿色的灰色复选标记)。
      猜你喜欢
      • 2014-08-09
      • 1970-01-01
      • 2022-11-03
      • 2012-08-02
      • 2017-12-01
      • 2017-12-03
      • 1970-01-01
      • 2017-07-27
      相关资源
      最近更新 更多