Скользящее окно в R, но шаги меньше, чем частота дискретизации - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь применить скользящее окно к кадру данных, что-то вроде того, как работают 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)

Заранее большое спасибо!

...