【发布时间】:2019-08-22 03:16:34
【问题描述】:
我有一个如下所示的数据框:
person date1 date2 total amount overlap
A 2019-03-01 2019-03-16 50
A 2019-03-10 2019-03-31 100
A 2019-03-20 2019-03-31 70
B 2019-03-01 2019-03-12 200
B 2019-03-01 2019-03-20 130
B 2019-03-16 2019-03-31 100
我想创建一个新列(重叠),它取每一行的值加上同一组中的其他行(这里我想按人员列分组),其日期范围与日期范围重叠当前行。
所以为了说明,第一行应该是 50(当前行的值)加上 100(因为第二行与第一行重叠),总共是 150。在这里,请注意我们没有包括第三行自第三行的日期范围不与第一行重叠。
我尝试执行 group_by(person) 然后 mutate(overlap) 但我不知道如何访问同一组中的其他行以了解它们是否与当前行重叠。我也尝试过研究 Overlap() 函数,但我不确定如何利用它来获得我想要的。
理想情况下,我想制作一个如下所示的表格:
person date1 date2 total amount overlap
A 2019-03-01 2019-03-16 50 150
A 2019-03-10 2019-03-31 100 220
A 2019-03-20 2019-03-31 70 170
B 2019-03-01 2019-03-12 200 330
B 2019-03-01 2019-03-20 130 430
B 2019-03-16 2019-03-31 100 230
【问题讨论】:
标签: r aggregate overlap date-range