Nothing
#' @title Interpolate
#'
#' @description Interpolate a numeric or factor vector.
#'
#' @param x A numeric or factor vector.
#' @param ninterp The number of points to interpolate between observations. It
#' should be an even number for sensible results on a factor/character vector.
#' @param ... Not used.
interpolate <-
function (x, ...)
{
UseMethod("interpolate", x)
}
#' @rdname interpolate
#' @method interpolate numeric
interpolate.numeric <-
function (x, ninterp = 4L, ...)
{
if (ninterp < 0)
stop("'ninterp' should be >= 0")
xdiff <- diff(x) / (ninterp + 1L)
cumsum(c(x[1L], rep(xdiff, each = ninterp + 1L)))
}
#' @rdname interpolate
#' @method interpolate integer
interpolate.integer <- interpolate.numeric
#' @rdname interpolate
#' @method interpolate factor
interpolate.factor <-
function (x, ninterp = 4L, ...)
{
if (ninterp < 0)
stop("'ninterp' should be >= 0")
if (!identical(ninterp %% 2, 0))
warning("'ninterp' should be even for factor/character vector")
unlist(list(rep(head(x, 1L), 1L + floor(ninterp / 2L)),
rep(head(tail(x, -1L), -1L), each = ninterp + 1L),
rep(tail(x, 1L), 1L + ceiling(ninterp / 2L))))
}
#' @rdname interpolate
#' @method interpolate character
interpolate.character <- interpolate.factor
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.