Я пытаюсь применить скользящее окно к кадру данных, что-то вроде того, как работают rollapply и SlidingWindow.Однако мне было интересно, может ли одна из этих функций или другая функция использовать шаги, которые (1) являются десятичными, а (2) могут быть меньше, чем частота дискретизации (см. Пример ниже).Такая функция может более эффективно выполнять следующие действия:
library(dplyr)
beaver1.1 <- beaver1 %>% mutate(activ = 0)
beaver1.2 <- beaver1 %>% mutate(activ = 1,
temp = temp + 1)
beaver_combined <- rbind(beaver1.1, beaver1.2)
beaver_combined <- beaver_combined %>%
mutate(time = time *.001)
window_freq <- .001
window_size <- .049
first_window <- min(beaver_combined$time)
last_window <- max(beaver_combined$time)
window_vector <- seq(first_window, last_window, window_freq)
windowing <- function(window_start){
window_end <- window_start + window_size
pullfrom <- beaver_combined %>%
filter(between(time, window_start, window_end)) %>%
group_by(activ) %>%
summarise(temp = mean(temp)) %>%
spread(activ, temp)
}
needsbinding <- mapply(windowing, window_vector)
do.call(rbind, needsbinding)
Заранее большое спасибо!