我有一个类似于这样的数据框:
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
我想创建一个名为“overlap”的新列,它的值是每一行加上同一组内(这里我希望按人员列分组)与当前行日期范围重叠的其他行的值之和。
举个例子,第一行应该是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