首页 > 解决方案 > R:如何根据日期将一个时间段分成多行

问题描述

我正在尝试根据日期拆分时间段。数据集中的每一行应该被分成n个周期

  1. 开始日期至年末(12 月 31 日)
  2. 年初至开始日期
  3. 新年的开始日期到年末等等......直到它到达结束日期

此外,行应重复 n 次(特别是 ID)

拆分前的数据集:

df <- tribble(
    ~ID,      ~Start,       ~End    
    , 01, "2016-05-14", "2018-09-14"
    , 02, "2013-07-21", "2014-05-19"
)
ID 开始 结尾
01 “2016-05-14” “2018-09-14”
02 “2013-07-21” “2014-05-19”

拆分后的数据集(第一行):

df_out <- tribble(
    ~ID, ~Period_Start  ~Period_End,  ~Days,
    , 01, "2016-05-14", "2016-12-31",  231,
    , 01, "2016-12-31", "2017-05-14",  164,
    , 01, "2017-05-14", "2017-12-31",  231,
    , 01, "2017-12-31", "2018-05-14",  133,
    , 01, "2018-05-14", "2018-09-14",  123,
)
ID Period_Start Period_End
01 2016-05-14 2016-12-31 231
01 2016-12-31 2017-05-14 164
01 2017-05-14 2017-12-31 231
01 2017-12-31 2018-05-14 133
01 2018-05-14 2018-09-14 123

任何帮助将不胜感激!

标签: rdatedatetime

解决方案


推荐阅读