Я хотел бы написать условный оператор внутри mutate_at (), чтобы функция ок. () Не интерполировала значения, в которых более двух пропущенных строк данных.
Вот данные:
dat <- data.frame(
time = 1:10,
var1 = c(10, 10, 10, 12, 12, 12, 15, 15, 15, 15),
var2 = c( 1, NA, 3, 6, NA, NA, NA, 10, 9, 8),
var3 = c(10, NA, NA, 13, 14, 16, NA, 18, 19, 20)
)
Кусок кода, который я хотел бы адаптировать так, чтобы он НЕ интерполировал там, где между значениями имеется более 2 NA (то есть строки 5-7 в столбце var2 должны оставаться NA и все другие NA.должны быть интерполированы значения.
library(tidyverse)
dat_int <- dat %>%
mutate_at(vars(c(var2, var3)),
funs(approx(time, ., time, rule = 1, method = "linear")[["y"]]))