Rev 9076 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{approxfun}\alias{approx}\alias{approxfun}\title{Interpolation Functions}\description{Return a list of points which linearly interpolate given data points,or a function performing the linear (or constant) interpolation.}\usage{approx (x, y, xout, method="linear", n=50,yleft, yright, rule=1, f=0,ties=mean)approxfun(x, y, method="linear",yleft, yright, rule=1, f=0,ties=mean)}\arguments{\item{x,y}{vectors giving the coordinates of the points to beinterpolated. Alternatively a single plotting structure can bespecified.}\item{xout}{an optional set of values specifying where interpolationis to take place.}\item{method}{specifies the interpolation method to be used. Choicesare \code{"linear"} or \code{"constant"}.}\item{n}{If \code{xout} is not specified, interpolation takes place at\code{n} equally spaced points spanning the interval [\code{min(x)},\code{max(x)}].}\item{yleft}{the value to be returned when input \code{x} valuesless than \code{min(x)}. The default is defined by the valueof \code{rule} given below.}\item{yright}{the value to be returned when input \code{x} valuesgreater than \code{max(x)}. The default is defined by the valueof \code{rule} given below.}\item{rule}{an integer describing how interpolation is to take placeoutside the interval [\code{min(x)}, \code{max(x)}].If \code{rule} is \code{1} then \code{NA}s are returned for suchpoints and if it is \code{2}, the value at the closest data extremeis used.}\item{f}{For \code{method="constant"} a number between 0 and 1inclusive, indicating a compromise between left- andright-continuous step functions. If \code{y0} and \code{y1} are thevalues to the left and right of the point then the value is\code{y0*f+y1*(1-f)} so that \code{f=0} is right-continuous and\code{f=1} is left-continuous.}\item{ties}{Handling of tied \code{x} values. Either a functionwith a single vector argument returning a single number result orthe string \code{"ordered"}}}\value{\code{approx} returns a list with components \code{x} and \code{y},containing \code{n} coordinates which interpolate the given datapoints according to the \code{method} (and \code{rule}) desired.The function \code{approxfun} returns a function performing (linear orconstant) interpolation of the given data points. For a given set of\code{x} values, this function will return the correspondinginterpolated values. This is often more useful than \code{approx}.}\details{The inputs can contain missing values which are deleted, so at leasttwo complete \code{(x, y)} pairs are required. If there are duplicated(tied) \code{x} values and \code{ties} is a function it is appliedto the \code{y} values for each distinct \code{x} value. Usefulfunctions in this context include\code{\link{mean}},\code{\link{min}}, and \code{\link{max}}. If\code{ties="ordered"} the \code{x} values are assumed to be alreadyordered. The first \code{y} value will be used for interpolation tothe left and the last one for interpolation to the right.}\seealso{\code{\link{spline}} and \code{\link{splinefun}} for splineinterpolation.}\examples{x <- 1:10y <- 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")) # Tcurve(fc(x), 0, 10, col = "darkblue", add = TRUE)}\keyword{arith}\keyword{dplot}