unix-conf/.emacs.d/elpa/ess-20160208.453/etc/pkg1/R/D1tr.R

21 lines
868 B
R
Raw Normal View History

2016-02-18 13:53:30 +00:00
D1tr <- function(y, x = 1)
{
## Purpose: discrete trivial estimate of 1st derivative.
## ----------------------------------------------------------------------
## Arguments: x is optional; let's say we don't like "'"
## ----------------------------------------------------------------------
## Author: Martin Maechler, ~ 1990
n <- length(y)
if(length(x) == 1)
c(y[2] - y[1], 0.5 * (y[-(1:2)] - y[-((n-1):n)]), y[n] - y[n-1])/x
else {
## Here, already using non-matching apostrophes, but developer mode
## still seems to work ..
if(n != length(x)) stop("lengths' of x & 'y' must equal")
if(is.unsorted(x)) stop("'x' must be sorted !")
c(y[2] - y[1], 0.5 * (y[-(1:2)] - y[-((n-1):n)]), y[n] - y[n-1]) /
c(x[2] - x[1], 0.5 * (x[-(1:2)] - x[-((n-1):n)]), x[n] - x[n-1])
}
}