Como preencher os números "seguintes" sempre que houver um 0 em R?

Eu tenho uma série de números:

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

Preciso substituir 0 com o número correspondente logo "atrás" dele, deixando os 0s na cauda sozinho (porque não há nada atrás deles):

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

Como posso passar de n1 para n2?

Essa parece ser uma pergunta muito mais difícil do que a que eu fiz anteriormente:

Como preencher os números anteriores sempre que houver um 0 em R?

onde o flodel criou uma solução elegante:

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

No entanto, esta solução não funciona aqui; Eu tentei, mas não consegui adaptar o código.

Alguém pode descobrir uma solução elegante?

Desde já, obrigado!

questionAnswers(3)

yourAnswerToTheQuestion