seismicRoll (version 1.1.3)

roll_range: Rolling Range with Alignment

Description

Fast rolling range with aligment using C++/Rcpp. Additional performance gains can be achieved by skipping increment values between calculations.

Usage

roll_range(x, n = 7, increment = 1, align = "center")

Arguments

x

an R numeric vector

n

integer window size

increment

integer shift to use when sliding the window to the next location

align

window alignment, one of "left"|"center"|"right"

Value

A vector of rolling values that difference the maximum and minimum values, of the same length as x.

Details

The window size n is interpreted as the full window length.

Setting increment to a value greater than one will result in NAs for all skipped-over indices.

The align parameter determines the alignment of the current index within the window. Thus:

  • align="left" [*------] will cause the returned vector to have n-1 NA values at the right end.

  • align="center" [---*---] will cause the returned vector to have (n-1)/2 NA values at either end.

  • align="right" [------*] will cause the returned vector to have n-1 NA values at the left end.