Learn R Programming

berryFunctions (version 1.11.0)

approx2: Smart linear NA interpolation

Description

Smart interpolation: as approx, approx2 fills NAs in a vector with linear interpolation, but unlike approx, it can handle NAs at the ends of a vector (takes the first/last value available for those). Also, approx2 returns a vector only.

Usage

approx2(x, fill = NULL, n = length(x), ...)

Arguments

x
Vector with (numeric) values
fill
Function to fill NAs at the start or end of the vector. See Details. DEFAULT: NULL
n
Number of points to interpolate to
...
Further arguments passed to approx

Value

Vector with NAs replaced with interpolation (not a list, as in approx!)

Details

The function fill is used to fill missing values at the ends of the vector. It could be mean or median, for example, but must be a function that accepts na.rm=TRUE as an argument. The default (NULL) means to use the first (or last) observation available.

See Also

approx, zoo::na.locf, ciBand for usage example

Examples

Run this code

is.error(  approx2(c(NA,NA))  ) # yields an error
approx2(c(NA,NA, 6, 4, 8, 9, 3, 2, 1))
approx2(c( 2,NA, 6, 4, 8, 9, 3, 2, 1))
approx2(c( 2, 4, 6, 4, 8, 9,NA, 2,NA))

approx2(c(NA,NA, 6, 4, 8, 9, 3, 2, 1))
approx2(c(NA,NA, 6, 4, 8, 9, 3, 2, 1), fill=median)
approx2(c(NA,NA, 6, 4, 8, 9, 3, 2, 1), fill=mean)

approx2(c( 3, 4, 6, 4, 8, 9,NA, 2,NA))
approx2(c( 3, 4, 6, 4, 8, 9,NA, 2,NA), fill=median)
approx2(c( 3, 4, 6, 4, 8, 9,NA, 2,NA), fill=mean)

approx2(c(NA,NA, 6, 4, 8, 9, 3, 2, 1), n=17)
approx2(c( 2,NA, 6, 4, 8, 9, 3, 2, 1), n=17)
approx2(c( 2, 4, 6, 4, 8, 9,NA, 2,NA), n=17)

Run the code above in your browser using DataLab