我在下面的表格上有一个数据集:
| 身份证|开始日期|结束日期|
| --------------|--------------|--------------|
| 1|2020-01-01 2020-01-01|2021-01-01 2021- 01-01|
| 二|2000-03-02|2021-01-01 2021- 01-01|
我想在90天的间隔从开始到结束日期分裂。我也许可以找到一个工作,但由于我需要执行多次,我正在寻找一个相对简单的代码。我想do.call可能是要走的路?
如果结束间隔不适合90天的周期,则最后间隔可以小于90天。
| 身份证|开始日期|结束日期|
| --------------|--------------|--------------|
| 1|2020-01-01 2020-01-01|2020-03-31 2020-03-31|
| 1|2020-03-31 2020-03-31|2020-06-29 2020-06-29 2020-06-29|
| ……|||
| 二|2000-03-02|2000-05-31|
2条答案
按热度按时间jc3wubiy1#
我们可以创建一个小的helper来扩展一个
start
/end
对,并在dplyr::reframe()
中使用它。你必须在你的数据上逐行运行这个,所以如果你有很多行,它会有点慢,但我不确定是否有其他方法可以做到这一点。efzxgjgh2#
另一种方法可能是使用
seq
从start
到end
90天,对于每个id
,保留end
列。然后,将end
列修改为end
和start
的90天之间的较早日期,以防止超过结束日期。输出