我已经从历史记录数据创建了一个xts对象,来自SQL数据库。我想创建tick数据的子集,例如:
每天上午10点到下午2点半之间显示每日蜱。这将允许我根据一天中的时间为特定的交易想法创建特定的数据集。我索引的格式如下:
> index(merged[3567,])
[1] "2011-08-01 13:17:59 SAST"
请问xts的专家请告诉我如何创建这些子集?任何建议都将不胜感激。
答案 0 :(得分:4)
您可以使用时间子集进行操作:
merged["T10:00/T14:30"]
答案 1 :(得分:1)
您可以使用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]