These functions take a vector of y
values and identify local extrema.
find_local_extrema(
y,
x = NULL,
window_width = NULL,
window_width_n = NULL,
window_height = NULL,
window_width_frac = NULL,
window_width_n_frac = NULL,
return = "index",
return_maxima = TRUE,
return_minima = TRUE,
return_endpoints = TRUE,
subset = NULL,
na.rm = TRUE,
width_limit = NULL,
width_limit_n = NULL,
height_limit = NULL
)first_maxima(
y,
x = NULL,
window_width = NULL,
window_width_n = NULL,
window_height = NULL,
window_width_frac = NULL,
window_width_n_frac = 0.2,
return = "index",
return_endpoints = TRUE,
...
)
first_minima(
y,
x = NULL,
window_width = NULL,
window_width_n = NULL,
window_height = NULL,
window_width_frac = NULL,
window_width_n_frac = 0.2,
return = "index",
return_endpoints = TRUE,
...
)
find_local_extrema
returns a vector corresponding to all the
found local extrema.
first_maxima
returns only the first maxima, so is a shortcut for
find_local_extrema(return_maxima = TRUE, return_minima = FALSE)[1]
first_minima
returns only the first minima, so is a shortcut for
find_local_extrema(return_maxima = FALSE, return_maxima = FALSE)[1]
If return = "index"
, the returned value(s) are the indices
corresponding to local extrema in the data
If return = "x"
, the returned value(s) are the x value(s)
corresponding to local extrema in the data
If return = "y"
, the returned value(s) are the y value(s)
corresponding to local extrema in the data
Numeric vector of y values in which to identify local extrema
Optional numeric vector of corresponding x values
Arguments that set the width/height of the window used to search for local extrema.
window_width
is in units of x
.
window_width_n
is in units of number of data points.
window_height
is the maximum change in y
a single extrema-search step is allowed to take.
window_width_n_frac
is as a fraction of the total
number of data points.
For example, the function will not pass a peak or valley
more than window_width_n
data points wide, nor
a peak/valley taller or deeper than window_height
.
A narrower width will be more sensitive to narrow local maxima/minima, while a wider width will be less sensitive to local maxima/minima. A smaller height will be more sensitive to shallow local maxima/minima, while a larger height will be less sensitive to shallow maxima/minima.
One of c("index", "x", "y"), determining whether the function will return the index, x value, or y value associated with the identified extremas
logical for which classes of local extrema to return
Should the first and last values in y
be included if they are in the returned
vector of extrema?
A vector of logical values indicating which x and y values should be included (TRUE) or excluded (FALSE).
If return = "index"
, index will be for the whole
vector and not the subset of the vector
logical whether NA's should be removed before analyzing
Deprecated, use window_width
instead
Deprecated, use window_width_n
instead
Deprecated, use window_height
instead
(for first_maxima
and first_minima
), other
parameters to pass to find_local_extrema
For find_local_extrema
, one of window_width
,
window_width_n
, window_height
, or window_width_n_frac
must be provided.
For first_minima
or first_maxima
, set
window_width_n_frac = NULL
to override default width behavior.
If multiple of window_width
, window_width_n
,
window_height
, or window_width_n_frac
are provided, steps
are limited conservatively (a single step must meet all criteria).
In the case of exact ties in y
values within a window, only the
first local extrema is returned.