2017-11-02 5 views
-2
x <- c(0, 1, 2, 3, 4, 5) 
y <- c(0, 10, NA , 30, NA) 

(nicht ganz sicher, wie NA-Werte in dem Datenrahmen setzen)Interpolationswerte in R Finden

Also .. mein Problem ist, wie NA mit Interpolationswerte ersetzen?

+0

Was sind interpolierte Werte? –

+0

'Bibliothek (Zoo); na.approx (y, Regel = 2) '? – Roland

+1

Wie genau wollen Sie interpolieren? Willst du eine Art Modellbau machen? Eine lineare Interpolation? Sie müssen eine Art von Annahmen treffen, um fehlende Werte auszufüllen. Sei klarer, was das gewünschte Ergebnis ist. – MrFlick

Antwort

0

Ist das was du willst?

x <- c(0, 1, 2, 3, 4, 5) 
y <- c(0, 10, NA , 30, NA) 

delta_y <- unique(na.omit(diff(y))) 

for (i in 1:length(y)) { 
    if (is.na(y[i])) { 
    y[i] <- y[i - 1] + delta_y 
    } 
} 

> y 
[1] 0 10 20 30 40 

Ich konnte nicht mit einer Art und Weise kommen diese ohne eine Schleife zu lösen, aber ich bin sicher, dass jemand anderes einen effizienteren Weg finden werden.