Я пытаюсь вычислить вариации скользящих средних периодов в выражении R dplyr.
library(dplyr)
data <- tibble(a=seq(1:1000), b=runif(1000), c=rep(c('x','y','Z','q'), 250))
# Rolling mean calculation
augment <- data %>% group_by(c) %>% mutate(mean = rollmean(a, 10, na.pad=TRUE, align='left')) %>%
ungroup() %>% drop_na() %>% group_by(c) %>% dplyr::summarize(cor = cor(mean,b)) %>%
mutate(ndays = 10)
То, что я хотел бы сделать, это l oop перебрать / перебрать период прокрутки 10 и заменить 10 на seq (10,35).
Этот вывод Вышеприведенное утверждение выглядит следующим образом:
# A tibble: 4 x 3
c cor ndays
<chr> <dbl> <dbl>
1 q 0.0107 10
2 x 0.0118 10
3 y -0.0908 10
4 Z -0.0508 10
Требуемый вывод представляет собой таблицу с записями по дням для каждого из периодов усреднения от 10 до 35 и соответствующей корреляцией.
Я попытался вставить оператор преобразования добавить переменную ndays, но размеры не верны. Различные итерации в этой попытке не сработали.
Как этого достичь в dplyr и связанных пакетах?
Спасибо!