2

例如,假设我想从格式为的时间序列中提取每天 09:04:00 的价格:

DateTime            | Price
2011-04-09 09:01:00 | 100.00
2011-04-09 09:02:00 | 100.10
2011-04-09 09:03:00 | 100.13

(注意:实际数据中没有 |,我只是将其包含在此处以说明 DateTime 是索引,Price 是核心数据,并且两者在 xts 对象中是不同的)

并将这些提取的值放入 xts 向量中……最有效的方法是什么?

此外,如果我有一个跨境传播的五年时间序列,其中 - 由于时差 - 传播在一年中的不同时间打开(比如冬季上午 9 点,夏季上午 10 点)我怎样才能得到 R考虑到这些时间差异,并将上午 9 点至 16:30 或上午 10 点至 16:30 识别为相同的“天”间隔。

换句话说,我想将一个 1m 的日内刻度数据文件转换为每日 OHLC 数据。通常只使用 xts 和 to.period 来执行此操作,但是 - 鉴于上述时间差 - 给出了奇数/奇怪的一天开始/结束时间

任何建议都非常感谢!

4

1 回答 1

3

您可以使用带有 xts 子集的“T”前缀来指定每天的时间间隔。您必须指定一个间隔;一次是行不通的。

set.seed(21)
x <- xts(cumprod(1+rnorm(2*60*24)/100),
  as.POSIXct("2011-04-09 09:01:00")+60*(1:(2*60*24)))
x["T09:01:59/T09:02:01"]
#                          [,1]
# 2011-04-09 09:02:00 0.9980737
# 2011-04-10 09:02:00 1.0778835
于 2011-04-09T12:38:09.247 回答