Funktion / Schleife zum Ersetzen von NA durch Werte in benachbarten Spalten in R

Ich habe einen Zeitreihendatensatz mit 1000 Spalten. Jede Zeile ist natürlich ein anderer Datensatz. Es gibt einige NA-Werte, die über den gesamten Datensatz verteilt sind.

Ich möchte jede NA entweder durch den angrenzenden Wert für links oder den angrenzenden Wert für rechts ersetzen, es spielt keine Rolle, welche.

Eine saubere Lösung und eine, für die ich mich entschieden habe, ist, jede NA durch den Wert rechts von ihr zu ersetzen, es sei denn, sie steht in der letzten Spalte. In diesem Fall wird sie durch den Wert links von ihr ersetzt.

Ich wollte gerade eine for-Schleife ausführen, aber ich gehe davon aus, dass eine Funktion effizienter ist. Im Grunde war ich mir nicht sicher, wie ich auf die angrenzenden Werte verweisen sollte.

Hier ist, was ich versucht habe:

for (entry in dataset) {
  if (any(is.na(entry)) == TRUE && entry[,1:999]) {
    entry = entry[,1]
  }
  else if (any(is.na(entry)) == TRUE && entry[,1000]) {
    entry = cell[,-1]
  }
}

Wie Sie sehen, bin ich unerfahren mit R :) Ich bin mir nicht sicher, wie Sie die Werte nach links oder rechts indizieren.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage