blob: 34a10d236339fccdc47f4f49f8a5c237ee90a832 [file] [log] [blame]
% File src/library/splines/man/periodicSpline.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2017 R Core Team
% Distributed under GPL 2 or later
\name{periodicSpline}
\alias{periodicSpline}
\title{Create a Periodic Interpolation Spline}
\description{
Create a periodic interpolation spline, either from \code{x} and
\code{y} vectors, or from a formula/data.frame combination.
}
\usage{
periodicSpline(obj1, obj2, knots, period = 2*pi, ord = 4L)
}
\arguments{
\item{obj1}{either a numeric vector of \code{x} values or a formula.}
\item{obj2}{if \code{obj1} is numeric this should be a numeric vector
of the same length. If \code{obj1} is a formula this can be an
optional data frame in which to evaluate the names in the formula.}
\item{knots}{optional numeric vector of knot positions.}
\item{period}{positive numeric value giving the period for the
periodic spline. Defaults to \code{2 * pi}.}
\item{ord}{integer giving the order of the spline, at least 2. Defaults
to 4. See \code{\link{splineOrder}} for a definition of the order of
a spline.}
}
\value{
An object that inherits from class \code{spline}. The object can be in
the B-spline representation, in which case it will be a
\code{pbSpline} object, or in the piecewise polynomial representation
(a \code{ppolySpline} object).
}
\author{Douglas Bates and Bill Venables}
\seealso{
\code{\link{splineKnots}},
\code{\link{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)
\donttest{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" )
}
\keyword{models}