approxfun                package:base                R Documentation

_I_n_t_e_r_p_o_l_a_t_i_o_n _F_u_n_c_t_i_o_n_s

_D_e_s_c_r_i_p_t_i_o_n:

     Return a list of points which linearly interpolate given data
     points, or a function performing the linear (or constant)
     interpolation.

_U_s_a_g_e:

     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)

_A_r_g_u_m_e_n_t_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 interpolation 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-continuous.

    ties: Handling of tied `x' values. Either a function with a single
          vector argument returning a single number result or the
          string `"ordered"'

_D_e_t_a_i_l_s:

     The inputs can contain missing values which are deleted, so at
     least two complete `(x, y)' pairs are required. If there are
     duplicated (tied) `x' values and `ties' is a function it is
     applied to the `y' values for each distinct `x' value. Useful
     functions in this context include `mean',`min', and `max'. If
     `ties="ordered"' the `x' values are assumed to be already ordered.
     The first `y' value will be used for interpolation to the left and
     the last one for interpolation to the right.

_V_a_l_u_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_e_e _A_l_s_o:

     `spline' and `splinefun' for spline interpolation.

_E_x_a_m_p_l_e_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)

