【发布时间】:2020-08-21 11:25:54
【问题描述】:
我有以下数据框:
agrodata
week temperature humidity radiation evapotranspiration
<date> <dbl> <dbl> <dbl> <dbl>
2012-03-25 15.9 54.1 20.4 0
2012-06-17 25.9 65.6 22.2 0.486
2012-06-24 27.4 61.7 21.3 0
2012-07-08 27.5 62.9 22.4 0
2012-07-15 27.5 50.1 23.1 0
2012-07-22 27.0 56.4 19.0 0
2012-07-29 28.7 61.5 19.7 0
2012-08-05 29.1 56.1 20.0 0.0286
2012-08-12 28.6 56.8 19.4 0
2012-08-19 29.0 63.0 18.1 0
2012-08-26 27.4 62.9 18.0 0.229
2012-09-02 16.9 32.9 16.9 0
2012-09-09 25.0 62.1 16.7 0
2012-09-16 25.4 62.6 14.5 0
2012-09-30 22.3 65.6 15.2 0
2012-10-07 22.4 71.4 13.9 0
2012-10-14 19.3 67.2 11.3 0.257
2012-10-21 18.7 74.5 9.70 3.43
2012-10-28 16.4 75.5 8.35 3.2
2012-11-04 17.8 79.7 7.17 7
如您所见,我将日期按周分组。我想创建 4 个新列(对于 4 个气候变量中的每一个),其中包含前连续 5 周的平均值,如果没有前连续 5 周,那么无论如何......有什么办法吗它与 dplyr?谢谢。
【问题讨论】:
-
这能回答你的问题吗? Consecutive/Rolling sums in a vector in R
-
缺少周数时会发生什么?我们是否需要从当前周到 5 周前的一周之间的所有周?还是仅在过去 5 周的最后一周与当前周之间的缺失?还是您的意思是前 5 行,无论它们是否在 5 周内?本周是包括在平均值中还是严格意义上的前一周?
-
我们在前 5 周里占用的时间一样多。我们需要从当前周到 5 周前的一周之间的所有周。如果前一周没有 5 个,我们可以取 4 个,或 3 个,或 2 个,甚至 1 个(当前周)。包括实际周数,因此我们需要 6 个值的平均值(前 5 周和当前周)。谢谢!