replaceWithMA <- function(x) { for(i in 1:length(x)){ if(is.na(x[i])){ start <- i while(is.na(x[i]) & i < length(x)) i <- i + 1 if(start == 1 & i <= length(x)){ for(j in start:i){ x[j] <- x[i] } } else if(i < length(x)) { for(j in start:(i-1)){ x[j] <- ma } } else if(i == length(x)){ for(j in start:i){ x[j] <- x[start-1] } } } } return(x) }