These functions do not handle NA values
mov_mean( data, window_size, type = c("ogita", "normal", "weighted", "fading"), eps = 0.9 ) mov_var( data, window_size, type = c("ogita", "normal", "weighted", "fading"), eps = 0.9 ) mov_sum( data, window_size, type = c("ogita", "normal", "weighted", "fading"), eps = 0.9 ) mov_max(data, window_size) mov_min(data, window_size) mov_std(data, window_size, rcpp = TRUE) movmean_std(data, window_size, rcpp = TRUE) muinvn(data, window_size, n_workers = 1) zero_crossing(data, window_size)
data | A |
---|---|
window_size | An |
type | A |
eps | A |
rcpp | A |
n_workers | An |
mov_mean()
returns a vector
with moving avg
.
mov_var()
returns a vector
with moving var
.
mov_sum()
returns a vector
with moving sum
.
mov_max()
returns a vector
with moving max
.
mov_min()
returns a vector
with moving min
.
mov_std()
returns a vector
with moving sd
.
movmean_std()
returns a list
with vectors
of the moving avg
, sd
, sig
, sum
and sqrsum
.
muinvn()
returns a list
with vectors
of moving avg
and sig
.
zero_crossing()
returns a vector
of times the data crossed the 'zero' line inside a rolling window.
Some functions may use different algorithms to compute the results. The available types are:
ogita: This is the default. It uses the Ogita et al., Accurate Sum, and Dot Product for precision. It is not the fastest algorithm, but the time spent vs. guarantee of precision worth it.
normal: This uses the cumsum
method that is faster, but unreliable in some situations (I have to find the
references, but is true).
weighted: This uses Rodrigues P., et al. algorithm that uses a weighted window for online purposes. The
eps
argument controls the factor. (The function is not online yet)
fading: This also uses Rodrigues P., et al. algorithm that in this case, uses a fading factor, also for
online purposes. he eps
argument controls the factor. (The function is not online yet)
Another important detail is that the standard deviation we use for all computations is the population (i.e.:
divided by n
), not the sample (i.e.: divided by n - 1
). That is why we also provide the internally the
:::std()
function that computes the population, differently from stats::sd()
that is the sample kind. Further
more, movmean_std()
shall be used when you need both results in one computation. This is faster than call
mov_mean()
followed by mov_std()
. Finally, muinvn()
is kept like that for historical reasons, as it is the
function used by mpx()
. It returns the sig
(stable inverse centered norm) instead of std
(sig
is equals to
1 / (std * sqrt(window_size))
).
mov <- mov_mean(motifs_discords_small, 50) mov <- mov_var(motifs_discords_small, 50) mov <- mov_sum(motifs_discords_small, 50) mov <- mov_max(motifs_discords_small, 50) mov <- mov_min(motifs_discords_small, 50) mov <- mov_std(motifs_discords_small, 50) mov <- movmean_std(motifs_discords_small, 50) mov <- muinvn(motifs_discords_small, 50) zero_cross <- zero_crossing(motifs_discords_small, 50)