【发布时间】:2019-07-04 18:05:41
【问题描述】:
我有一个每分钟都有值的数据集,我想计算每小时的平均值。我尝试使用 dplyr 包中的 group_by()、filter() 和 summarise() 来减少每小时的数据。当我只使用这些函数时,我能够获得每小时但每个月的平均值,并且我每天都想要它。
> head(DF)
datetime pw cu year m d hr min
1 2017-08-18 14:56:00 0.0630341 1.94065 2017 8 18 14 53
2 2017-08-18 14:57:00 0.0604653 1.86771 2017 8 18 14 57
3 2017-08-18 14:58:00 0.0601318 1.86596 2017 8 18 14 58
4 2017-08-18 14:59:00 0.0599276 1.83761 2017 8 18 14 59
5 2017-08-18 15:00:00 0.0598998 1.84177 2017 8 18 15 0
我不得不使用 for 循环来减少我的表格,我写了以下内容来做到这一点:
datetime <- c()
eg_bf <-c ()
for(i in 1:8760){
hour= start + 3600
DF= DF %>%
filter(datetime >= start & datetime < hour) %>%
summarise(eg= mean(pw))
datetime= append(datetime, start)
eg_bf= append(eg_bf, DF$eg)
start= hour
}
new_DF= data.frame(datetime, eg_bf)
所以。我能够获得一年中每个小时的平均值的新数据集。
datetime eg_bf
1 2018-01-01 00:00:00 0.025
2 2018-01-01 01:00:00 0.003
3 2018-01-01 02:00:00 0.002
4 2018-01-01 03:00:00 0.010
5 2018-01-01 04:00:00 0.015
我面临的问题是这需要很多时间。我们的想法是将此计算添加到闪亮的 UI 中,因此每次我进行更改时,都必须使更改更快。知道如何改进这个计算吗?
【问题讨论】: