【发布时间】:2020-01-25 07:29:42
【问题描述】:
以下数据集包含每小时累积降雨量。我想通过计算连续两个小时的降雨量差异来计算每小时降雨率。
问题是每天 09:00 开始测量降雨量。因此,我想从 06/02/18 的 09 小时到 18 年 6 月 3 日的 08 小时开始寻找 hr_rain 列的两行连续行之间的差异,并且在第二天再次相同。
我不能简单地从 09 小时开始,然后去寻找接下来的 24 条记录,因为在某些日子里,hr_rain 的一些观察结果丢失了。
样本数据如下:
STATION CODE DATE HOUR hr_rain
SHIVAMOGGA 163 06/09/18 00 1.0
SHIVAMOGGA 163 06/09/18 04 1.0
SHIVAMOGGA 163 06/09/18 05 1.0
SHIVAMOGGA 163 06/09/18 06 1.5
SHIVAMOGGA 163 06/09/18 07 2.5
SHIVAMOGGA 163 06/09/18 08 2.5
SHIVAMOGGA 163 06/09/18 09 0.0
SHIVAMOGGA 163 06/09/18 10 0.5
SHIVAMOGGA 163 06/09/18 11 0.5
SHIVAMOGGA 163 06/09/18 12 0.5
SHIVAMOGGA 163 06/09/18 13 0.5
SHIVAMOGGA 163 06/09/18 14 0.5
SHIVAMOGGA 163 06/09/18 15 0.5
SHIVAMOGGA 163 06/09/18 16 0.5
SHIVAMOGGA 163 06/09/18 17 0.5
SHIVAMOGGA 163 06/09/18 18 0.5
SHIVAMOGGA 163 06/09/18 19 0.5
SHIVAMOGGA 163 06/10/18 03 0.5
SHIVAMOGGA 163 06/10/18 05 0.5
SHIVAMOGGA 163 06/10/18 06 0.5
SHIVAMOGGA 163 06/10/18 07 0.5
SHIVAMOGGA 163 06/10/18 08 0.5
SHIVAMOGGA 163 06/10/18 09 0.0
SHIVAMOGGA 163 06/10/18 10 0.0
我试过了
df %>% group_by(DATE) %>% mutate( RAINFALL = hr_rain - lag(hr_rain, default = 0))
但它确实根据DATE 进行分组,并从一天的 0 小时到一天的 23 小时给出结果,并在第二天重新开始。但我想从每天 9 点开始到第二天 8 点。
我想要的是:
STATION CODE DATE HOUR hr_rain rainfall
SHIVAMOGGA 163 06/09/18 00 1.0 1
SHIVAMOGGA 163 06/09/18 04 1.0 0
SHIVAMOGGA 163 06/09/18 05 1.0 0
SHIVAMOGGA 163 06/09/18 06 1.5 0.5
SHIVAMOGGA 163 06/09/18 07 2.5 1
SHIVAMOGGA 163 06/09/18 08 2.5 0
SHIVAMOGGA 163 06/09/18 09 0.0 0
SHIVAMOGGA 163 06/09/18 10 0.5 0.5
SHIVAMOGGA 163 06/09/18 11 0.5 0
SHIVAMOGGA 163 06/09/18 12 0.5 0
SHIVAMOGGA 163 06/09/18 13 0.5 0
SHIVAMOGGA 163 06/09/18 14 0.5 0
SHIVAMOGGA 163 06/09/18 15 0.5 0
SHIVAMOGGA 163 06/09/18 16 0.5 0
SHIVAMOGGA 163 06/09/18 17 0.5 0
SHIVAMOGGA 163 06/09/18 18 0.5 0
SHIVAMOGGA 163 06/09/18 19 0.5 0
SHIVAMOGGA 163 06/10/18 03 0.5 0
SHIVAMOGGA 163 06/10/18 05 0.5 0
SHIVAMOGGA 163 06/10/18 06 0.5 0
SHIVAMOGGA 163 06/10/18 07 0.5 0
SHIVAMOGGA 163 06/10/18 08 0.5 0
SHIVAMOGGA 163 06/10/18 09 0.0 0
SHIVAMOGGA 163 06/10/18 10 0.0 0
作为 R 的初学者,我可能确实缺少一些简单的东西。我将不胜感激如何在 R 中做到这一点。
【问题讨论】:
标签: r dplyr data.table