【发布时间】:2019-09-25 03:43:23
【问题描述】:
我有一个包含时间段的数据集,可能会重叠,显示是否有人在场 (example_df)。我想获得一个数据集,将一个大的时间段(从 2014-01-01 到 2014-10-31)分成有人在场的更小的时间段(present = 1)和没有人在场的时间段(@987654323 @)。
结果应该类似于result_df
示例数据框
example_df <- data.frame(ID = 1,
start = c(as.Date("2014-01-01"), as.Date("2014-03-05"), as.Date("2014-06-13"), as.Date("2014-08-15")),
end = c(as.Date("2014-04-07"), as.Date("2014-04-12"), as.Date("2014-08-05"), as.Date("2014-10-02")),
present = 1)
结果应该是这样的
result_df <- data.frame(ID = 1,
start = c(as.Date("2014-01-01"), as.Date("2014-04-12"), as.Date("2014-06-13"), as.Date("2014-08-05"), as.Date("2014-08-15"), as.Date("2014-10-02")),
end = c(as.Date("2014-04-12"), as.Date("2014-06-13"), as.Date("2014-08-05"), as.Date("2014-08-15"), as.Date("2014-10-02"), as.Date("2014-10-31")),
present = c(1, 0, 1, 0, 1, 0))
我不知道如何解决这个问题,因为它需要拆分时间段或添加行(或其他什么?)。非常感谢任何帮助!
【问题讨论】:
标签: r dplyr time-series lubridate