R: Create a Periodic Interpolation Spline

periodicSpline {splines} | R Documentation

## Create a Periodic Interpolation Spline

### Description

Create a periodic interpolation spline, either from `x` and `y` vectors, or from a formula/data.frame combination.

### Usage

    periodicSpline(obj1, obj2, knots, period = 2*pi, ord = 4L)

### Arguments

`obj1` | either a numeric vector of `x` values or a formula.
`obj2` | if `obj1` is numeric this should be a numeric vector of the same length. If `obj1` is a formula this can be an optional data frame in which to evaluate the names in the formula.
`knots` | optional numeric vector of knot positions.
`period` | positive numeric value giving the period for the periodic spline. Defaults to `2 * pi`.
`ord` | integer giving the order of the spline, at least 2. Defaults to 4. See `splineOrder` for a definition of the order of a spline.

### Value

An object that inherits from class `spline`. The object can be in the B-spline representation, in which case it will be a `pbSpline` object, or in the piecewise polynomial representation (a `ppolySpline` object).

### Author(s)

Douglas Bates and Bill Venables

### See Also

`splineKnots`, `interpSpline`

### Examples

    require(graphics); require(stats)
    xx <- seq( -pi, pi, length.out = 16 )[-1]
    yy <- sin( xx )
    frm <- data.frame( xx, yy )
    pispl <- periodicSpline( xx, yy, period = 2 * pi)
    pispl
    pispl2 <- periodicSpline( yy ~ xx, frm, period = 2 * pi )
    stopifnot(all.equal(pispl, pispl2))  # pispl and pispl2 are the same

    plot( pispl )          # displays over one period
    points( yy ~ xx, col = "brown")
    plot( predict( pispl, seq(-3*pi, 3*pi, length.out = 101) ), type = "l" )

[Package splines version 3.5.1 Index]