I would like to compute a variant of rolling medians on my dataset that does build the subsets not by going k
observerations to the front and back, but by taking all observations into account that are in a given time window.
A straightforward implemtation could look like this:
windowwidth <- 30
median.window <- function(x) median(mydata[time <= x + windowwidth /2 & time >= x - windowwidth /2)
vapply(time, median.window)
However, as you can imagine, this is not very efficient for large datasets. Do you see a possible improvement or a package providing an optimized implementation? You can not expect the observations be distributed equally over time.
zoo
provides rollmedian
, but this function does not offer to choose the winwod based on time but on the observation count.