【发布时间】:2016-10-17 00:00:05
【问题描述】:
考虑一下
time <- seq(ymd_hms("2014-02-24 23:00:00"), ymd_hms("2014-06-25 08:32:00"), by="hour")
group <- rep(LETTERS[1:20], each = length(time))
value <- sample(-10^3:10^3,length(time), replace=TRUE)
df2 <- data.frame(time,group,value)
str(df2)
> head(df2)
time group value
1 2014-02-24 23:00:00 A 246
2 2014-02-25 00:00:00 A -261
3 2014-02-25 01:00:00 A 628
4 2014-02-25 02:00:00 A 429
5 2014-02-25 03:00:00 A -49
6 2014-02-25 04:00:00 A -749
我想为每个组创建一个包含value
- 过去 5 天(不包括当前观察)
- 仅考虑与当前观测值完全相同的时间的观测值。
换句话说:
在时间2014-02-24 23:00:00,df2['rolling_mean_same_hour'] 包含数据中过去 5 天在23:00:00 观察到的value 值的平均值(当然不包括2014-02-24)。
我想在dplyr 或data.table 中这样做。我承认不知道该怎么做。
有什么想法吗?
非常感谢!
【问题讨论】:
标签: r data.table dplyr lubridate