Работа с большим объемом данных, чтобы быть более эффективной, мы можем использовать пакет data.table.
require(data.table)
replaceNaWithLatest <- function(
dfIn,
nameColNa = names(dfIn)[1]
){
dtTest <- data.table(dfIn)
setnames(dtTest, nameColNa, "colNa")
dtTest[, segment := cumsum(!is.na(colNa))]
dtTest[, colNa := colNa[1], by = "segment"]
dtTest[, segment := NULL]
setnames(dtTest, "colNa", nameColNa)
return(dtTest)
}
Я использовал это в командной строке, чтобы заставить этот цикл давать только один раз ... 0 будет означать цикл навсегда.
convert -loop 1 ani.gif ani.gif