approxfun {stats} | R Documentation |

Return a list of points which linearly interpolate given data points, or a function performing the linear (or constant) interpolation.

approx (x, y = NULL, xout, method="linear", n=50, yleft, yright, rule = 1, f = 0, ties = mean) approxfun(x, y = NULL, method="linear", yleft, yright, rule = 1, f = 0, ties = mean)

`x, y` |
vectors giving the coordinates of the points to be
interpolated. Alternatively a single plotting structure can be
specified: see `xy.coords` . |

`xout` |
an optional set of values specifying where interpolation is to take place. |

`method` |
specifies the interpolation method to be used. Choices
are `"linear"` or `"constant"` . |

`n` |
If `xout` is not specified, interpolation takes place at
`n` equally spaced points spanning the interval [`min(x)` ,
`max(x)` ]. |

`yleft` |
the value to be returned when input `x` values are
less than `min(x)` . The default is defined by the value
of `rule` given below. |

`yright` |
the value to be returned when input `x` values are
greater than `max(x)` . The default is defined by the value
of `rule` given below. |

`rule` |
an integer describing how interpolation is to take place
outside the interval [`min(x)` , `max(x)` ].
If `rule` is `1` then `NA` s are returned for such
points and if it is `2` , the value at the closest data extreme
is used. |

`f` |
For `method="constant"` a number between 0 and 1
inclusive, indicating a compromise between left- and
right-continuous step functions. If `y0` and `y1` are the
values to the left and right of the point then the value is
`y0*(1-f)+y1*f` so that `f=0` is right-continuous and
`f=1` is left-continuous. |

`ties` |
Handling of tied `x` values. Either a function
with a single vector argument returning a single number result or
the string `"ordered"` . |

The inputs can contain missing values which are deleted, so at least
two complete `(x, y)`

pairs are required (for ```
method =
"linear"
```

, one otherwise). If there are duplicated (tied) `x`

values and `ties`

is a function it is applied to the `y`

values for each distinct `x`

value.
Useful functions in this context include `mean`

,
`min`

, and `max`

. If `ties="ordered"`

the `x`

values are assumed to be already ordered. The first
`y`

value will be used for interpolation to the left and the last
one for interpolation to the right.

`approx`

returns a list with components `x`

and `y`

,
containing `n`

coordinates which interpolate the given data
points according to the `method`

(and `rule`

) desired.

The function `approxfun`

returns a function performing (linear or
constant) interpolation of the given data points. For a given set of
`x`

values, this function will return the corresponding
interpolated values. This is often more useful than `approx`

.

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
*The New S Language*.
Wadsworth & Brooks/Cole.

`spline`

and `splinefun`

for spline
interpolation.

x <- 1:10 y <- rnorm(10) par(mfrow = c(2,1)) plot(x, y, main = "approx(.) and approxfun(.)") points(approx(x, y), col = 2, pch = "*") points(approx(x, y, method = "constant"), col = 4, pch = "*") f <- approxfun(x, y) curve(f(x), 0, 10, col = "green") points(x, y) is.function(fc <- approxfun(x, y, method = "const")) # TRUE curve(fc(x), 0, 10, col = "darkblue", add = TRUE) ## Show treatment of 'ties' : x <- c(2,2:4,4,4,5,5,7,7,7) y <- c(1:6, 5:4, 3:1) approx(x,y, xout=x)$y # warning (ay <- approx(x,y, xout=x, ties = "ordered")$y) stopifnot(ay == c(2,2,3,6,6,6,4,4,1,1,1)) approx(x,y, xout=x, ties = min)$y approx(x,y, xout=x, ties = max)$y

[Package *stats* version 2.5.0 Index]