У меня есть этот фрейм данных,
`df <- tibble(
key = rep(1:3, c(8,4,5)),
Date = c(seq(as.Date('2016-12-17'), as.Date('2016-12-19'), '1 day'),
seq(as.Date('2016-12-21'), as.Date('2016-12-23'), '1 day'),
seq(as.Date('2016-12-29'), as.Date('2016-12-30'), '1 day'),
seq(as.Date('2017-05-18'), as.Date('2017-05-21'), '1 day'),
seq(as.Date('2017-05-18'), as.Date('2017-05-20'), '1 day'),
seq(as.Date('2017-05-23'), as.Date('2017-05-24'), '1 day')),
flag= c(1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,0,1)
)`
Для каждого «Ключа» мне нужно максимальное значение «Дата», прежде чем «Флаг» в первый раз станет равным 0 или, если флаг 0 отсутствует для «Ключа» затем верните максимальное значение «Дата».
Мне нужен следующий вывод.
key Date flag
1 2016-12-19 1
2 2017-05-21 1
3 2017-05-20 1
Может ли кто-нибудь помочь мне с этим?
Спасибо.