Ich versuche Werte innerhalb einer Gruppe mit dplyr und approx linear zu interpolieren() Leider haben einige der Gruppen alle fehlenden Werte, daher würde ich die Annäherung an überspringe diese Gruppen einfach und fahre fort für den Rest. Ich möchte die Daten der nächsten Nachbarbeobachtung nicht extrapolieren oder verwenden.lineare Interpolation mit dplyr aber Überspringen von Gruppen mit allen fehlenden Werten
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 die Fehler
Error: need at least two non-NA values to interpolate
ich diesen Fehler nicht, wenn ich von den Gruppen loszuwerden, die alle gefehlt haben, aber das ist nicht machbar.
Ausgezeichnet, danke. Das ist sehr sauber und zeigt, warum Rohre (%>%) groß sind. – Irix3537106