Skip to content

Trick to replace NA

3 messages · Marc Girondot, R. Michael Weylandt, Jorge I Velez

#
Dear members,

I have a series of values in a vector and some value are missing and 
replaced with NA.
For example:
a <- c(27, 25, NA, NA, 24, 26, 27, NA, 26)
I would like to replace the NAs with the value taken from the previous 
value that is non-NA. The output would be in this case:

27 25 25 25 24 26 27 27 26

Now I do that with a for loop, but I try to eliminate all the loops to 
gain in performance

I try this and it works but again I have a while and then I do not 
eliminate completely loop:

l <- length(a)
while(any(is.na(a))) {a[2:l] <- ifelse(is.na(a[2:l]), a[1:(l-1)], a[2:l])}

If someone have another solution, I will be most happy !

Sincerely

Marc Girondot
#
Take a look at

na.locf()

in the zoo package. (LOCF = last observation carried forward)

RMW
On Thu, Nov 22, 2012 at 12:56 PM, Marc Girondot <marc_grt at yahoo.fr> wrote: