Lineare Interpolation mit Dplyr, aber Überspringen von Gruppen mit allen fehlenden Werten

Ich versuche, Werte innerhalb einer Gruppe mit dplyr und approx () linear zu interpolieren. Leider haben einige der Gruppen alle fehlenden Werte. Daher möchte ich, dass die Näherung diese Gruppen einfach überspringt und für den Rest fortfährt. Ich möchte die Daten der nächsten Nachbarbeobachtung nicht extrapolieren oder verwenden.

Hier ist ein Beispiel für die Daten. Die erste Gruppe (nach ID) fehlt, die andere sollte interpoliert werden.

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)

Aber dann bekomme ich den Fehler

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

Ich erhalte diesen Fehler nicht, wenn ich die Gruppen entferne, die alle fehlen, aber das ist nicht möglich.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage