[R] Replacing each NA with the most recent non-NA prior to it
Duncan Murdoch
murdoch@dunc@n @end|ng |rom gm@||@com
Wed Feb 27 05:06:09 CET 2019
On 26/02/2019 10:34 p.m., John wrote:
> If I use the na.locf function to replace each NA with the most recent
> non-NA prior to it, then
>
>> na.locf(c(NA,NA,1,4,NA,2))
> [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:
>
>> na.locf(c(NA,NA,1,4,NA,2), na.rm=FALSE)
> Error in na.locf(c(NA, NA, 1, 4, NA, 2), na.rm = FALSE) :
> unused argument (na.rm = FALSE)
>> na.locf(c(NA,NA,1,4,NA,2), na.rm=TRUE)
> Error in na.locf(c(NA, NA, 1, 4, NA, 2), na.rm = TRUE) :
> unused argument (na.rm = TRUE)
>
>
> Thank you very much!
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
More information about the R-help
mailing list