我想从分钟级别的数据中,每天提取前5分钟的时间序列数据子集,但是每天前5分钟开始的时间不同,因此使用类似
到目前为止,我已经能够使用以下函数提取出每天的第一分钟:
xtsobj["T09:00/T09:05"]
的方法将无法奏效,因为第一个5分钟的开始时间会更改。也就是说,有时它会在上午9:20开始,或者在早晨的其他随机时间开始,而不是在上午9点开始。到目前为止,我已经能够使用以下函数提取出每天的第一分钟:
k <- diff(index(xtsobj))> 10000
xtsobj[c(1, which(k)+1)]
例如,在数据中找到大于10000秒的间隔是比较容易的,但是要从中找出每天的前5分钟却更加困难,因为数据并不总是均匀分布的。例如,在第一分钟和第五分钟之间可能有2到5行数据,因此使用如下方法:
xtsobj[c(1, which(k)+6)]
然后将结果绑定在一起并不总是准确的。我希望可以使用类似'first'的函数,但是不确定如何处理多天的情况,也许这可能是最佳解决方案。是否有更好的方法来获取这些信息?
非常感谢stackoverflow社区提前为您提供的帮助。
xtsobj['5_min_period']
不起作用。你只能使用非常特定类型的字符串来对 xts 对象进行子集操作。 - Joshua Ulrichxtsobj['5_min_period']
不起作用,因为'5_min_period'
不是xts能够识别的字符串。很高兴你纠正了这个错误。 - Joshua Ulrich