我有以下具有每小时值的时间序列:
str(ts_GM)
# An 'xts' object on 2016-07-29 01:00:00/2017-09-01 containing:
# Data: num [1:7348, 1] 0 0 0 0 NA NA NA NA NA NA ...
# Indexed by objects of class: [POSIXct,POSIXt] TZ: UTC
# xts Attributes:
# NULL
head(ts_GM)
# [,1]
# 2016-07-29 01:00:00 0
# 2016-07-29 02:00:00 0
# 2016-07-29 03:00:00 0
# 2016-07-29 04:00:00 0
# 2016-07-29 06:00:00 NA
# 2016-07-29 07:00:00 NA
tail(ts_GM)
# [,1]
# 2017-08-31 19:00:00 0
# 2017-08-31 20:00:00 0
# 2017-08-31 21:00:00 0
# 2017-08-31 22:00:00 0
# 2017-08-31 23:00:00 0
# 2017-09-01 00:00:00 0
由于测量失败,时间序列存在间隙,我需要将测量值与一年中每一天的最大和最小小时理论值进行比较。NA出于这个原因,我需要用从时间序列的开始日期到结束日期的每小时时间戳中的值来填补空白。
我试过:
dates_GM <- seq(from = start(ts_GM), to = end(ts_GM), by = "hour")
merge(ts_GM, dates_GM, fill = NA, all = TRUE)
# and
merge(ts_GM, dates_GM)
但是有些值是重复的,因为时间序列的最终长度是 9695,应该是 9576。我如何在不重复值的情况下做到这一点?