

   IInntteerrppoollaattiioonn FFuunnccttiioonnss

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

   AArrgguummeennttss::

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

       xout: an optional set of values specifying where inter-
             polation 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
             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
             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*f+y1*(1-f)' so that
             `f=0' is right-continuous and `f=1' is left-con-
             tinuous.

   VVaalluuee::

        `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'.

   SSeeee AAllssoo::

        `spline' and `splinefun' for spline interpolation.

   EExxaammpplleess::

        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"))  # T
        curve(fc(x), 0, 10, col = "darkblue", add = TRUE)

