Message-ID: <42A5BA68.1060505@pdf.com>
Date: 2005-06-07T15:16:56Z
From: Spencer Graves
Subject: without a loop
In-Reply-To: <3f87cc6d050607080273116a2@mail.gmail.com>
How about the following:
tmp <- c(-1,NA,NA,1,1,NA,NA,1)
replaceNA <- function(x){
iNA <- which(is.na(x))
if(length(iNA) %in% c(0, length(x)))
return(x)
iNA1 <- iNA-1
iNA1[iNA==0] <- length(x)
x[iNA] <- x[iNA1]
replaceNA(x)
}
> replaceNA(tmp)
[1] -1 -1 -1 1 1 1 1 1
> replaceNA(NA)
[1] NA
spencer graves
Omar Lakkis wrote:
> tmp <- c(-1,NA,NA,1,1,NA,NA,1)
>
> without using a loop, how can I replace all NAs in the list above with
> the previous none NA value in the list?
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html