Calculate moving sum of n values "around" values
Usage
movingSum(x, n, na.rm = FALSE)
Arguments
- x
vector of values of which moving sum is to be calculated
- n
number of values "around" the values in x, including the
values in x, of which the mean is calculated. Only odd numbers 1, 3,
5, ... allowed. For each x[i] in x the moving sum is calculated by:
x[i-(n-1)/2] + ... + x[i-1] + x[i] + x[i+1] + ... + x[i+(n-1)/2]
- na.rm
logical. Should missing values (including NaN) be omitted from
the calculations?
Value
Vector of moving sums with the same number of values as there are in
x. If na.rm is FALSE, the first (n-1)/2 values
and the last (n-1)/2 values are NA since there are not enough values
at the start and at the end of the vector, respectively, to calculate the
sum.
Examples
x <- rnorm(30)
plot(x, type = "b", main = "Moving mean over 3, 5, 7 points")
times <- 2:4
for (i in times) {
lines(movingSum(x, n = 2 * i - 1), col = i, type = "b", lwd = 2)
}
legend("topright", fill = times, legend = sprintf("n = %d", 2 * times - 1))