通过下一次观察以及线性插值来估算缺失值(NA)

时间:2019-03-01 14:57:39

标签: r

我有以下数据:如果时间戳记的差异超过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)

0 个答案:

没有答案