шаг 1: заменить все нули на NA
, потому что, ...
dat[1, dat[1,] == 0] <- NA
шаг 2: ... затем вы можете использовать функцию, котораяособенноразработан, чтобы делать то, что вы хотите с NA
-значениями
dat[1, ] <- zoo::na.locf(unlist(dat[1,]))
# dat[1, ] <- zoo::na.locf(dat[1, ])
результат:
# [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
#x 1 1 1 1 2 2 2 3 3 3 3
#y 10 11 12 13 14 15 16 17 18 19 20
Поскольку ваш пример был matrix
и вы, возможно,data.frame
для ваших реальных данных.Убедитесь, что ?unlist
ваш data.frame-row в векторе, поэтому zoo::na.locf
может функционировать как вам нужно.