Função / Loop para substituir NA por valores em colunas adjacentes em R

Eu tenho um conjunto de dados de séries temporais com 1000 colunas. Cada linha é, obviamente, um registro diferente. Existem alguns valores de NA espalhados pelo conjunto de dados.

Gostaria de substituir cada NA pelo valor à esquerda adjacente ou ao valor adjacente à direita, não importa qual.

Uma solução interessante e uma que eu procurava é substituir cada NA pelo valor à direita, a menos que esteja na última coluna; nesse caso, substitua-o pelo valor à esquerda.

Eu estava apenas fazendo um loop for, mas presumo que uma função seria mais eficiente. Basicamente, eu não tinha certeza de como referenciar os valores adjacentes.

Aqui está o que eu estava tentando:

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]
  }
}

Como você pode ver, eu sou inexperiente com R :) Não tenho muita certeza de como você indexa os valores para a esquerda ou direita.

questionAnswers(1)

yourAnswerToTheQuestion