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.