RollingFunctions.jl


This package makes it easy to summarize windowed data.

A function is applied to successive data subsequences.


You give a summarizing function 𝐹𝑒𝑛𝑐, the dataπ·π‘Žπ‘‘π‘Ž, and a window span π‘†π‘π‘Žπ‘›.

The result 𝑅 is of length 𝑅ᴺ, 𝑅ᴺ = length(π·π‘Žπ‘‘π‘Ž) - π‘†π‘π‘Žπ‘› + 1.

  • the result omits 𝑅ᴼ = π‘†π‘π‘Žπ‘› - 1 indices into π·π‘Žπ‘‘π‘Ž.

there are ways for the results match the data in length


Use a single, shared padding value

  • rolling(function, data, window_span; padding = missing)

  • this will fill the initial result values with the padding value

    • pads these values(result[1], .., result[pad_nindices])
  • rolling(function, data, window_span; padding = missing, padlast = true)

  • this will fill the final result values with the padding value

    • pads these values(result[n-pad_nindices+1], .., result[n])

Pad with a vector of values with length matching the extra indicies ( 𝑅ᴼ)

  • this fills the extra indices with values obtained bycopying

Use an empty vector

  • this fills the extra indices with values obtained bytrimming

  • trimming evaluates the window function over available data

    • trimmed window spans are less than the specified window_span

Use a vector of𝓃 padding values

  • where1 <= 𝓃 < 𝑅ᴼ.

  • this first pads then trims to assign the extra indices

    • the first𝓃 indices of the result will match this vector
    • the next 𝑅ᴼ - 𝓃 indices of the result will be trimmed
    • the remaining indices get the rolled results.