Missing Value Imputation by Last Observation Carried Forward

Description

Replaces each missing value with the most recent present value prior to it (Last Observation Carried Forward- LOCF). Optionally this can also be done starting from the back of the series (Next Observation Carried Backward - NOCB).

Usage

1
na.locf(x, option = "locf", na.remaining = "rev")

Arguments

x

Numeric Vector (vector) or Time Series (ts) object in which missing values shall be replaced

option

Algorithm to be used. Accepts the following input:

  • "locf" - for Last Observation Carried Forward

  • "nocb" - for Next Observation Carried Backward

na.remaining

Method to be used for remaining NAs.

  • "keep" - to return the series with NAs

  • "rm" - to remove remaining NAs

  • "mean" - to replace remaining NAs by overall mean

  • "rev" - to perform nocb / locf from the reverse direction

Details

Replaces each missing value with the most recent present value prior to it (Last Observation Carried Forward- LOCF). This can also be done from the reverse direction -starting from the back (Next Observation Carried Backward - NOCB). Both options have the issue, that NAs at the beginning (or for nocb at the end) of the time series cannot be imputed (since there is no last value to be carried forward present yet). In this case there are remaining NAs in the imputed time series. Since this only concerns very few values at the beginning of the series, na.remaining offers some quick solutions to get a series without NAs back.

Value

Vector (vector) or Time Series (ts) object (dependent on given input at parameter x)

Author(s)

Steffen Moritz

See Also

na.interpolation, na.kalman, na.ma, na.mean, na.random, na.replace, na.seadec, na.seasplit

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#Prerequisite: Create Time series with missing values
x <- ts(c(NA,3,4,5,6,NA,7,8))

#Example 1: Perform LOCF
na.locf(x)

#Example 2: Perform NOCF
na.locf(x, option = "nocb")

#Example 3: Perform LOCF and remove remaining NAs
na.locf(x, na.remaining = "rm")