在R中,当条件满足时,如何计算日期之间的差异?
我有两个数据帧df1和df2,其中包含特定事件的开始日期和结束日期。我已经确定了哪些日期有重叠的事件,这里定义为df1中的开始日期在df2的开始和结束日期内。如果发生重叠,则标记为真;如果没有重叠,则标记为假。我想知道的是…当重叠为真时,我如何计算df2和df1中开始时间之间的差异 此代码确定是否存在重叠在R中,当条件满足时,如何计算日期之间的差异?,r,dataframe,date,R,Dataframe,Date,我有两个数据帧df1和df2,其中包含特定事件的开始日期和结束日期。我已经确定了哪些日期有重叠的事件,这里定义为df1中的开始日期在df2的开始和结束日期内。如果发生重叠,则标记为真;如果没有重叠,则标记为假。我想知道的是…当重叠为真时,我如何计算df2和df1中开始时间之间的差异 此代码确定是否存在重叠 df1$aa$Overlap <- df1$aa$date_start %in% unlist(Map(':', df2$bb$date_start, df2$bb$date_end))
df1$aa$Overlap <- df1$aa$date_start %in% unlist(Map(':', df2$bb$date_start, df2$bb$date_end))
您可以看到有两个事件行1和3,其中重叠为真。我想做的是,当重叠等于TRUE时,确定df1和df2的date_start之间的时间差
我正在寻找的结果应该是这样的
date_start date_end Site Overlap Diff
1 2002-04-13 2002-04-21 aa TRUE 1
2 2002-08-13 2002-08-20 aa TRUE 4
这将解决一些嵌套for循环的问题 设置df1 df1
df1$aa$Overlap <- df1$aa$date_start %in% unlist(Map(':', df2$bb$date_start, df2$bb$date_end))
> df1$aa
date_start date_end Site Overlap
1 2002-04-14 2002-04-21 aa TRUE
2 2002-06-26 2002-07-05 aa FALSE
3 2002-08-15 2002-08-20 aa TRUE
4 2004-05-12 2004-05-19 aa FALSE
date_start date_end Site Overlap Diff
1 2002-04-13 2002-04-21 aa TRUE 1
2 2002-08-13 2002-08-20 aa TRUE 4