我有以下数据:如果时间戳记的差异超过1秒,我需要在下次观察时估算缺失值(NA)
对于1秒钟的时差出现的缺失值,我也应该使用线性插值进行插补。请帮助
Timestamp Value
2018-04-03 05:18:08 16.0
2018-04-03 05:18:09 23.0
2018-04-03 05:18:10 28.0
2018-04-03 05:18:23 NA
2018-04-03 05:18:24 42.0
2018-04-03 05:18:25 NA
2018-04-03 05:18:26 53.0
2018-04-03 05:18:31 NA
2018-04-03 05:18:32 16.0
Expected Output:
Timestamp Value
2018-04-03 05:18:08 16.0
2018-04-03 05:18:09 23.0
2018-04-03 05:18:10 28.0
2018-04-03 05:18:23 42.0
2018-04-03 05:18:24 42.0
2018-04-03 05:18:25 47.5
2018-04-03 05:18:26 53.0
2018-04-03 05:18:31 16.0
2018-04-03 05:18:32 16.0
我用2种方法尝试过的代码(当然它没有产生正确的结果)
data%>%mutate(Value = ifelse(is.na(Value), na.locf(Value, option = "nocb", na.remaining = "rev"), Value))
my.na.approx <- function(x) {
if (sum(is.finite(x)) == 0L) return(x)
if (sum(is.finite(x)) == 1L) return(na.approx(x, rule=2, method="constant"))
na.approx(x, rule=2)
}
my.na.approx(data$Value)