Ввести недостающие значения (NA) со следующим наблюдением, а также линейной интерполяцией - PullRequest
0 голосов
/ 01 марта 2019

У меня есть следующие данные: мне нужно вменять пропущенные значения (NA) со следующим немедленным наблюдением, если разница в отметке времени превышает 1 секунду

Также для пропущенных значений, которые появляются для разницы во времени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

Код, который я пробовал двумя способами (конечно, он не дал правильных результатов)

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...