Learn R Programming

phonTools (version 0.1-6)

interpolate: Interpolation

Description

Piece-wise cubic or linear spline interpolation.

Usage

interpolate (y, x = 1:length(y), steps = 20, increment = -1, show = FALSE, 
output = TRUE, type = 'cubic', ...)

Arguments

y
A vector of 'knots', between which the function will interpolate points.
x
The 'x' coordinates corresponding to each knot. If not specified, the knots are assumed to be equally spaced.
steps
The number of interpolating steps between each knot. Increasing this number will result in a smoother interpolation. If the knots are not equally spaced along the x-axis, the interpolated points will not be equally spaced across the entire curve.
increment
If this is greater than 0, interpolated points are separated along the x-axis by this value. Note that if the knot locations are not multiples of this increment, there will be irregularities in the spacing of the interpolated points.
show
If TRUE, the result of the interpolation is shown in a plot.
output
If TRUE, the interpolated values are returned.
type
If 'cubic', a natural cubic spline interpolation is performed. If 'linear', a linear interpolation is performed.
...
Additional arguments are passed to the internal call of plot() if output = TRUE.

Value

  • If output = TRUE, a dataframe with columns corresponding to the x and y dimensions of the interpolated points is returned.
  • xThe x-axis coordinates of the interpolated points.
  • yThe y-axis coordinates of the interpolated points.

Details

By default, this function performs a 'natural' cubic spline interpolation between the points provided by the user. Optionally, a linear interpolation between the points may be carried out.

References

http://en.wikipedia.org/wiki/Spline_interpolation

Examples

Run this code
## generate ten random points
y = rnorm (10, 0, 5)
interpolate (y, output = FALSE, show = TRUE)  ## plot a cubic interpolation
linear = interpolate (y, type = 'linear')   ## and compare to a linear interpolation
lines (linear, col = 2)

Run the code above in your browser using DataLab