计算R中状态发生变化或事件发生变化的2个日期之间的天数?

时间:2017-10-27 08:44:29

标签: r date

我正在尝试运行一段代码来计算两个日期之间的天数,只要状态更改为值1.

下面的

是数据框的示例:

sample of data

我可以使用下面的代码计算2个日期之间没有问题,这是每次更改之间有状态变化时我需要计算的天数。

df$Date2_Date1 <- difftime(df$Date2,df$Date1, units = c("hours"))

1 个答案:

答案 0 :(得分:1)

使用提供的数据框(一个更改:在第4个日期添加/) 和前一个代码中的一个编辑(单位而不是unist):

library(dplyr)


id= c(1,1,1,1,1,2,2,2,2,3,3,3,3) 
status = c(0,0,0,1,0,0,0,1,0,0,0,0,0) 
date =c('08/01/2017','09/01/2017','10/01/2017','11/01/2017', 
    '13/01/2017','16/01/2017','17/01/2017','18/01/2017', 
    '19/01/2017','20/01/2017','21/01/2017','23/01/2017', '24/01/2017')

data <-data.frame(id,status,date)%>%
  mutate(date=as.Date(date,"%d/%m/%Y"))

data%>%group_by(id,status)%>%
   summarise(date = min(date))%>%
   summarise(min = min(date),
         max = max(date),
         n = n(),
         Diff = difftime(max,min,unit=c("hours")),
         Diff = ifelse(n==2, Diff,NA))

给出

enter image description here