Wie trage ich die "nachfolgenden" Zahlen ein, wenn in R eine 0 steht?

Ich habe eine Reihe von Zahlen:

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

Ich muss die 0 durch die entsprechende Zahl "dahinter" ersetzen, um sie zu erhalten, während ich die 0 im Schwanz alleine lasse (weil nichts direkt dahinter ist):

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

Wie komme ich von n1 nach n2?

Dies scheint eine viel schwierigere Frage zu sein als die, die ich zuvor gestellt habe:

Wie trage ich die vorhergehenden Zahlen ein, wenn in R eine 0 steht?

wo flodel eine elegante lösung gefunden hat:

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

Diese Lösung funktioniert hier jedoch nicht. Ich habe versucht, den Code aber nicht anzupassen.

Kann jemand anderes eine elegante Lösung finden?

Danke im Voraus!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage