【发布时间】:2020-04-02 16:46:07
【问题描述】:
我正在尝试计算 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)
我想做的是循环/迭代 10 的滚动周期并用 seq(10,35) 替换 10。
上述语句的输出是:
# 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
所需的输出是一个 tibble,其中包含 10 到 35 个平均周期中每一个的 ndays 条目以及相关的相关性。
我尝试插入一个 mutate 语句来添加一个 ndays 变量,但尺寸不正确。对该尝试的不同迭代不起作用。
如何在 dplyr 和相关包中实现这一点?
谢谢!
【问题讨论】: