So looking at the code I wrote, you may have expected
NA, 3, 5, ...where it’s taking the current value and the prior value to make a window of width 2. Another reasonable alternative is that you may have expected
NA, NA, 3, ...where it’s summing up the prior two values. But hey, it’s kinda working like
cumsum()right so that’s ok! But wait, check out
c3. I gave
c3a window of width 3 and it gave me
NA, 6, 9, ...which looks like it’s summing the prior value, the current value, and the next value. …. That’s weird right?
It turns out the default behaviour for these rolling calculations is to center align the window, which means the window sits over the current value and tries it’s best to fit over the prior and next values equally. In the case of us giving it an even number it decided to put the window over the next values more than the prior values.
Knowing your window is critical when using a window function, and knowing that some functions have different default windows than others helps you be prepared.