У меня есть большой набор данных временных рядов, состоящий из информации на уровне человека, начиная с 2014 года и заканчивая 2019 годом. Важные столбцы, связанные с моим вопросом, включают: ID, дату дозирования и row_nbr. Ниже приведен пример:
df<-data.frame(ID=rep(1999,66),Dosage=c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,0,0,20,20,20,20,20,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,0,0,20,20,20,20,20,20,20,20,0,0,35,35,35,35,35,35,35,35,35),Date=seq(as.Date('2014-01-01'),length.out=66,by='month'),row_nbr=seq(66))
Я хотел бы удалить все строки, ведущие к первой строке, где дозировка больше 0.
Пример того, что я хотел бы например, данные, которые должны выглядеть при фильтрации данных:
df2<-data.frame(ID=rep(1999,46),Dosage=c(15,15,15,0,0,20,20,20,20,20,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,0,0,20,20,20,20,20,20,20,20,0,0,35,35,35,35,35,35,35,35,35),Date=seq(as.Date('2015-09-01'),length.out=46,by='month'),row_nbr=seq(46))
Я не уверен, как решить эту проблему, я мог бы потенциально сделать это: df<-df%>%filter(! row_nbr==1 & Dosage==0)
, а затем вызвать c строку нумерация и повторный запуск кода снова и снова, но я хотел посмотреть, есть ли у кого-нибудь представление о том, как лучше решить эту проблему. Спасибо!