如何使用r中的灵活窗口逐日计算一个月的滚动平均值?
我试图逐日计算3月份新冠病毒病例的滚动平均数 例如,3月5日应取3月前5天的病例平均数,20日应取前20天的病例平均数 我已经为此编写了一小段代码,但是是否有预构建的函数或更好的方法来实现这一点 df:如何使用r中的灵活窗口逐日计算一个月的滚动平均值?,r,R,我试图逐日计算3月份新冠病毒病例的滚动平均数 例如,3月5日应取3月前5天的病例平均数,20日应取前20天的病例平均数 我已经为此编写了一小段代码,但是是否有预构建的函数或更好的方法来实现这一点 df: Country.Region Date Cases_count <chr> <date> <dbl> 1 France 2021-03-01 4730 2 France
Country.Region Date Cases_count
<chr> <date> <dbl>
1 France 2021-03-01 4730
2 France 2021-03-02 22872
3 France 2021-03-03 26903
4 France 2021-03-04 25286
5 France 2021-03-05 23507
6 France 2021-03-06 23306
7 France 2021-03-07 21835
8 France 2021-03-08 5534
9 France 2021-03-09 23143
10 France 2021-03-10 29674
问题:要将此与案例计数一起使用,我必须进行一些加入。因此,如果有一些预先构建的函数,那么我可能可以将其与mutate或summary一起使用。因此,您实际需要的是一个累积的平均值,而不是滚动/移动平均值 更简单的方法是使用
cumsum
。例如,如果向量x
包含N个元素,则累积平均值可以表示为:
cummulative_mean <- cumsum(x) / seq_len(length(x))
cumulative\u意思是建议:提供代码以生成您的df
。粘贴名称和值会有所帮助,但要将它们粘贴到编辑器中,然后再对其进行声明,需要付出一些努力。如果您的代码按照通用样式指南正确格式化,也会有所帮助,如中所示。当然,我们会记住这一点!!谢谢@eduardokapp,这确实是一个累积平均值。我问这个问题真是太愚蠢了,这让人尴尬。现在你明白了,这可能看起来很愚蠢!希望你的问题也能帮助更多的人找到答案。是的,当然!!
Date rolling_mean
1 2021-03-01 4730.00
2 2021-03-02 13801.00
3 2021-03-03 18168.33
4 2021-03-04 19947.75
5 2021-03-05 20659.60
6 2021-03-06 21100.67
7 2021-03-07 21205.57
8 2021-03-08 19246.62
9 2021-03-09 19679.56
10 2021-03-10 20679.00
cummulative_mean <- cumsum(x) / seq_len(length(x))