Calculate days since last event in R

后端 未结 5 857
别那么骄傲
别那么骄傲 2020-12-17 10:04

My question involves how to calculate the number of days since an event last that occurred in R. Below is a minimal example of the data:

df <- data.frame         


        
5条回答
  •  自闭症患者
    2020-12-17 11:05

    You could try something like this:

    # make an index of the latest events
    last_event_index <- cumsum(df$event) + 1
    
    # shift it by one to the right
    last_event_index <- c(1, last_event_index[1:length(last_event_index) - 1])
    
    # get the dates of the events and index the vector with the last_event_index, 
    # added an NA as the first date because there was no event
    last_event_date <- c(as.Date(NA), df[which(df$event==1), "date"])[last_event_index]
    
    # substract the event's date with the date of the last event
    df$tae <- df$date - last_event_date
    df
    
    #        date event      tae
    #1 2000-07-06     0  NA days
    #2 2000-09-15     0  NA days
    #3 2000-10-15     1  NA days
    #4 2001-01-03     0  80 days
    #5 2001-03-17     1 153 days
    #6 2001-05-23     1  67 days
    #7 2001-08-26     0  95 days
    

提交回复
热议问题