根据时间间隔检查在 R 中插入新行

insert a new row in R based on time interval checking

全部; 我只有一个包含两列的数据文件,一列是时间序列,一列是值。通常情况下,两行之间的时间间隔正好是 5 分钟,但有时会大于 5 分钟

示例如下:

    dd <- data.table(date = c("2015-07-01 00:00:00", "2015-07-01 00:05:00", "2015-07-01 00:20:00","2015-07-01 00:25:00","2015-07-01 00:30:00"),
         value = c(9,1,10,12,0))

我想做的是检查两行之间的时间间隔,当时间间隔大于5分钟时,然后在下面插入一个值为0的新行,所以,结果可能是:

    date                  value
    2015-07-01 00:00:00    9
    2015-07-01 00:05:00    1
    2015-07-01 00:10:00    0
    2015-07-01 00:15:00    0
    2015-07-01 00:20:00    10
    2015-07-01 00:25:00    12
    2015-07-01 00:30:00    0

欢迎任何建议和想法:)

我们可以在转换为 'date' 到 DateClass

之后进行连接
dd[, date := as.POSIXct(date)][]
dd[dd[, .(date=seq(min(date), max(date), by = "5 min"))], on = 'date'
        ][is.na(value), value := 0][]
#                  date value
#1: 2015-07-01 00:00:00     9
#2: 2015-07-01 00:05:00     1
#3: 2015-07-01 00:10:00     0
#4: 2015-07-01 00:15:00     0
#5: 2015-07-01 00:20:00    10
#6: 2015-07-01 00:25:00    12
#7: 2015-07-01 00:30:00     0