Рассмотрим наблюдения на нерегулярных снимках, некоторые из которых представляют собой NA:
library(tidyverse)
library(tweenr)
df <- data.frame(date = c(ymd("20191201"), ymd("20191203"), ymd("20191207"), ymd("20191220")),
value = c(1, 2, NA, 5))
Каков самый чистый способ линейной интерполяции дат только между наблюдениями со значениями не-NA ? (В этом примере, поскольку 20191201 и 20191203 имеют последовательные значения не-NA, должна быть интерполяция) Я думаю, что-то, используя lead
или lag
. Этот код интерполирует между всеми значениями:
all_days <- data.frame(date = seq(min(df$date), max(df$date), "day"))
df %>%
arrange(date) %>%
right_join(all_days) %>%
mutate(value = value %>% tween_fill("linear"))