【发布时间】:2018-06-08 14:19:03
【问题描述】:
我有一个数据集:
here_dat <- '
ID,Event,Date
1,Pre-trans,01-01-2018
1,Event1 start,09-01-2018
1,Trans,19-01-2018
1,Trans,09-01-2018
1,Event1 end,19-01-2018
1,Post-trans,20-01-2018
1,Event2 start,21-01-2018
1,Trans,22-01-2018
1,Trans,23-01-2018
2,Pre-trans,01-01-2018
2,Event1 start,07-01-2018
3,Pre-trans,01-01-2018
3,Event2 start,09-01-2018
3,Trans,11-01-2018
3,Trans,13-01-2018
3,Trans,14-01-2018
3,Trans,17-01-2018
3,Event2 end,19-01-2018
3,Event1 start,25-01-2018
3,Event1 end,27-02-2018
'
events <- read.table(text=here_dat, sep=",", header=TRUE, stringsAsFactors=FALSE)
- 有两种类型的事件:Event1 和 Event2
- Event1 开始/结束不会与 Event2 开始/结束重叠
- 活动可能没有结束日期
我想计算每个 ID 的每种类型的事件之间的持续时间。如果事件没有结束日期,则使用当前日期作为结束日期。
理想的输出:
ID Event.type Event.startDate Duration
1 Event1 09-01-2018 10
1 Event2 21-01-2018 138
2 Event1 07-01-2018 152
3 Event2 09-01-2018 10
3 Event1 25-01-2018 2
【问题讨论】:
标签: r