msExtrema {msProcess}R Documentation

Find both Local Maxima and Local Minima

Description

Finds both local extrema in a vector, time series, or in each column of a matrix.

Usage

msExtrema(x, span=3)

Arguments

x a vector, time series, or matrix. If x is a matrix, msExtrema finds both local maxima and local minima in each column of x.
span a numeric value indicating the span of the local extreme. A local maximum (minimum) is defined as an element in a sequence which is greater (smaller) than all other elements within a window of width span centered at that element. The default value is 3, meaning that a maximum (minimum) is bigger (smaller) than both of its neighbors.

Value

a list with two elements:

index.max an object like x of logical values. Values that are TRUE correspond to local maxima in the data.
index.min an object like x of logical values. Values that are TRUE correspond to local minima in the data.

See Also

zeroCross.

Examples

## create a synthetic sequence 
a<-c(3,3,2,1,1,2,1,2,3,3,1,1,1,3,3,3,2,2,2,1,1,1,1,2,3)

## detect local maxima and minima 
maxmin <- msExtrema(a)

## visualize the result 
par(mfrow=c(1,1))
plot(a, type="l")
points((1:length(a))[maxmin$index.max],
    a[maxmin$index.max], col=2, pch=1)
points((1:length(a))[maxmin$index.min],
    a[maxmin$index.min], col=3, pch=2)
if (!is.R()){
    legend(x=18, y=3, col=2:3, marks=1:2, legend=c("maxima", "minima"))
} else {
    legend(x=18, y=3, col=2:3, pch=1:2, legend=c("maxima", "minima"))
}

[Package msProcess version 1.0.5 Index]