У меня есть набор данных с днями и случаями в день (например, болезнь, произведенные вирусы, ...)
Теперь я хочу подсчитать, как долго это длится, пока заранее определенное количество не будет сообщено / произведено.
Вот простой пример: у меня десять дней, в день в «делах» указано, сколько случаев было зарегистрировано в этот день.
Цель - получить столбец, как долго он длится на каждый день, пока не будет зарегистрировано (минимум) 5 случаев.
Мои данные:
dates<-c("10.03.2020","11.03.2020","12.03.2020","13.03.2020","14.03.2020",
"15.03.2020","16.03.2020","17.03.2020","18.03.2020","19.03.2020")
cases<-c(0,1,2,2,6,2,2,1,5,1)
dftest<-data.frame(dates,cases)
dates cases
1 10.03.2020 0
2 11.03.2020 1
3 12.03.2020 2
4 13.03.2020 2
5 14.03.2020 6
6 15.03.2020 2
7 16.03.2020 2
8 17.03.2020 1
9 18.03.2020 5
10 19.03.2020 1
И мой ожидаемый Результат. (Столбец days5cases также может быть числовым c):
dates cases days5cases
1 10.03.2020 0 4days
2 11.03.2020 1 3days
3 12.03.2020 2 3days
4 13.03.2020 2 2days
5 14.03.2020 6 1day
6 15.03.2020 2 3days
7 16.03.2020 2 3days
8 17.03.2020 1 2days
9 18.03.2020 5 1day
10 19.03.2020 1 <NA>
EDIT:
Некоторые примеры для вычисления days5cases
- 10.03. 2020 4 дня, потому что: 5 достигается на 13.03.2020 (0 + 1 + 2 + 2 = 5)
- 11.03.2020 3 дня, потому что: 5 достигается на 13.03.2020 (1 + 2 + 2 = 5)
- 12.03.2020 3 дня, потому что: 5 достигается 14.03.2020 (2 + 2 + 6 = 10> 5)
- 13.03.2020 2 дня, потому что: 5 достигается 14.03.2020 ( 2 + 6 = 8> 5)
- 14.03.2020 1 день, потому что: 5 достигается в 14.03.2020 (6> 5)
- и так далее ...
Мой вопрос:
Как я могу суммировать столбец «дела», пока не будет достигнуто 5 случаев? Начало расчета - каждый день в датах.
Спасибо за любую идею по решению этой проблемы ....
Я пробовал из пакета runner
sum_run
, но здесь он только возможно получить сумму на ближайшие 5 дней.
Simmilary rollapply
из пакета zoo
.
Будь здоров!