Skip to content

Replacing each NA with the most recent non-NA prior to it

3 messages · Duncan Murdoch, John

#
If I use the na.locf function to replace each NA with the most recent
non-NA prior to it, then
[1] 1 1 1 4 4 2

I want to keep leading NA's, and this is what I want
 NA NA 1 4 4 2

How can I do it?

The following do not work:
Error in na.locf(c(NA, NA, 1, 4, NA, 2), na.rm = FALSE) :
  unused argument (na.rm = FALSE)
Error in na.locf(c(NA, NA, 1, 4, NA, 2), na.rm = TRUE) :
  unused argument (na.rm = TRUE)


Thank you very much!

John
#
On 26/02/2019 10:34 p.m., John wrote:
There are at least two packages (zoo and imputeTS) which have na.locf 
functions.  The one in zoo does what you want:

 > zoo::na.locf(c(NA,NA,1,4,NA,2), na.rm=FALSE)
[1] NA NA  1  4  4  2

Duncan Murdoch
#
Thanks! That works!!

Duncan Murdoch <murdoch.duncan at gmail.com> ? 2019?2?27? ?? ??12:06???