3

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

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

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

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

4

2 回答 2

4

您可以使用时间子集来做到这一点:

merged["T10:00/T14:30"]
于 2011-08-23T12:04:07.120 回答
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]
于 2011-08-23T08:27:08.177 回答