линейная интерполяция с dplyr, но пропускает группы со всеми пропущенными значениями

Я пытаюсь линейно интерполировать значения внутри группы, используя dplyr и приблизительно (). К сожалению, у некоторых групп есть все пропущенные значения, поэтому я хотел бы, чтобы приближение просто пропустило эти группы и приступило к оставшейся части. Я не хочу экстраполировать или использовать данные ближайшего соседнего наблюдения.

Вот пример данных. В первой группе (по идентификатору) все отсутствует, другую следует интерполировать.

data <- read.csv(text="
id,year,value
c1,1998,NA
c1,1999,NA
c1,2000,NA
c1,2001,NA
c2,1998,14
c2,1999,NA
c2,2000,NA
c2,2001,18")

dataIpol <- data %>%
group_by(id) %>% 
arrange(id, year) %>%            
mutate(valueIpol = approx(year, value, year, 
                 method = "linear", rule = 1, f = 0, ties = mean)$y)

Но тогда я получаю ошибку

Error: need at least two non-NA values to interpolate

Я не получаю эту ошибку, если я избавляюсь от групп, в которых все отсутствует, но это невозможно.

Ответы на вопрос(1)

Ваш ответ на вопрос