У меня есть набор данных:
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 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