微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R 中的分钟时间序列如何插入缺失值以便在时间上具有相同的步骤?

如何解决R 中的分钟时间序列如何插入缺失值以便在时间上具有相同的步骤?

我有一个数据集,其中第 1 列是日期时间,第 2 列是特定时间点的价格。这些数据通过bloomberg excel 插件下载到Excel。然后我用 read_excel 函数把这个文件导入到 R 中。

This is how the data looks like in R

问题:数据应该以 1 分钟为间隔,但情况并非总是如此。有时下一行的时间晚了 1 分钟以上。那么,如何为丢失的分钟插入额外的行?因此,对于每个日期,我希望有以下顺序:

08:00

08:01

08:02

...

16:58

16:59

17:00

对于这些时间点,我想保留数据集中的价格。如果价格不存在,则应添加缺失。例如,如果我们有:

...

12:31 100

12:32 102

12:35 101

...

那么我想要:

...

12:31 100

12:32 102

12:33 失踪

12:34 失踪

12:35 101

...

最简单的方法是什么?谢谢!

解决方法

您可以使用您拥有的价格创建一个 xts,并将其与具有更高频率(例如每分钟)的序列合并。

library(xts)
library(lubridate)

set.seed(123)

prices <- 100 + rnorm(16)
timeindex <- seq(ymd_hm('2020-05-28 08:45'),ymd_hm('2020-05-28 09:15'),by = '2 mins')

prices_xts <- xts(prices,order.by = timeindex)

> head(prices_xts)
                         [,1]
2020-05-28 08:45:00  99.43952
2020-05-28 08:47:00  99.76982
2020-05-28 08:49:00 101.55871
2020-05-28 08:51:00 100.07051
2020-05-28 08:53:00 100.12929
2020-05-28 08:55:00 101.71506

timeindex2 <- seq(ymd_hm('2020-05-28 08:45'),by = '1 mins')

prices_with_gaps_xts <- merge.xts(prices_xts,timeindex2)

> head(prices_with_gaps_xts)
                    prices_xts
2020-05-28 08:45:00   99.43952
2020-05-28 08:46:00         NA
2020-05-28 08:47:00   99.76982
2020-05-28 08:48:00         NA
2020-05-28 08:49:00  101.55871
2020-05-28 08:50:00         NA

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。