Función / bucle para reemplazar NA con valores en columnas adyacentes en R

Tengo un conjunto de datos de series temporales con 1000 columnas. Cada fila, por supuesto, es un registro diferente. Hay algunos valores de NA que están dispersos en todo el conjunto de datos.

Me gustaría reemplazar cada NA con el valor adyacente de izquierda o el valor adyacente de derecha, no importa cuál.

Una solución ordenada y una que estaba buscando es reemplazar cada NA con el valor a su derecha, a menos que esté en la última columna, en cuyo caso reemplácelo con el valor a su izquierda.

Solo iba a hacer un bucle for, pero supongo que una función sería más eficiente. Esencialmente, no estaba seguro de cómo hacer referencia a los valores adyacentes.

Esto es lo que estaba intentando:

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 puede ver, no tengo experiencia con R :) No estoy muy seguro de cómo indexar los valores a la izquierda o la derecha.

Respuestas a la pregunta(1)

Su respuesta a la pregunta