Определение количества активных инцидентов за неделю с даты начала и окончания

У меня есть фрейм данных (df), который содержит информацию о прибытии и закрытой дате инцидентов, в формате:

ID       ArrivalDate    ClosedDate       

1          2015-12-01     2015-12-08
2          2015-12-01     2015-12-18
3          2015-12-02     2015-12-11 
4          2015-12-02     2015-12-03 
.             .              .           
.             .              .           
300        2016-05-03      2016-05-13  

Я хочу узнать, сколько было активных (которые прибыли, но не закрылись) в неделю, начиная с 2015-12-01 по 2016-05-31. то есть. Вывод должен выглядеть примерно так (это не правильные выходные значения, а то, как они должны выглядеть).

Номер недели StartDate EndDate Активно

1          2015-12-01   2015-12-08      4
2          2015-12-08   2015-12-15      15
3          2015-12-15   2015-12-22      20
.             .              .           .
.             .              .           .
26         2016-05-24  2016-05-31        3

Я использовал два цикла for, сравнивая каждый элемент в df с начальной и конечной датой каждой недели. Кроме того, я использовал фрейм данных (Неделя), в котором уже есть номер недели, дата начала и окончания для каждой недели и номер, который активен (который в начале равен нулю)

Это код, который я использовал:

for(i in 1:nrow(df)){
    for(j in 1:nrow(Week)){
        if(df$ArrivalDate[i]>=Week$StartDate[j]&df$ArrivalDate[i]<Week$EndDate[j])                 
            Week$Active[j]<-Week$Active[j]+1

        if(df$ClosedDate[i]>=Week$EndDate[j]){
            k<-j+1    
                repeat{      
                Week$Active[k]<-Week$Active[k]+1
                if(df$ClosedDate[i]>=Week$EndDate[k])break
                k<-k+1
                }
        }     

        if(df$ClosedDate[i]<Week$EndDate[j])break            
    }
 } 

Я продолжаю получать сообщения об ошибках, если такие утверждения, как "аргумент имеет нулевую длину" или "отсутствует значение, где требуются значения ИСТИНА / ЛОЖЬ", заставляют меня верить, что значения NA каким-то образом создаются. Я не знаю, является ли это ошибкой в ​​моей логике или некоторой синтаксической проблемой, которую я пропускаю.

Я знаю, что это не очень аккуратный способ решения проблемы, поэтому будет полезна любая другая более простая или лучшая логика.

заранее спасибо


0 ответов

Другие вопросы по тегам