¿Cómo completar los números "siguientes" siempre que haya un 0 en R?

Tengo una serie de números:

n1 = c(1, 1, 0, 6, 0, 0, 10, 10, 11, 12, 0, 0, 19, 23, 0, 0)

Necesito reemplazar 0 con el número correspondiente "detrás" para obtenerlo, dejando los 0 en la cola solos (porque no hay nada detrás de ellos):

n2 = c(1, 1, 6, 6, 10, 10, 10, 10, 11, 12, 19, 19, 19, 23, 0, 0)

¿Cómo puedo pasar de n1 a n2?

Esta parece ser una pregunta mucho más difícil que la que hice antes:

¿Cómo completar los números anteriores siempre que haya un 0 en R?

donde flodel ha encontrado una solución elegante:

n2 <- n1[cummax(seq_along(n1) * (n1 != 0))]

Sin embargo, esta solución no funciona aquí; He intentado pero no he podido adaptar el código.

¿Alguien más puede encontrar una solución elegante?

¡Gracias por adelantado!

Respuestas a la pregunta(3)

Su respuesta a la pregunta