如何查找日期是否在给定的时间间隔内

A1976

我有以下带有日期的数据框。

ID   start_date      end_date      Intrvl                    a_date           b_date          c_date
1     2013-12-01     2014-05-01    2013-12-01--2014-05-01    2014-01-01       2014-03-10      2015-03-10       
2     2016-01-01     2016-07-01    2016-01-01--2016-07-01    2014-02-01       NA              2016-02-01
3     2014-01-01     2014-07-01    2014-01-01--2014-07-01    2014-02-01       2016-02-01      2014-07-01    

我想知道,

  1. 如果来自a_date,b_date和c_date列的日期在我使用lubridate :: interval(start_date,end_date)计算的间隔期内。实际上,我有一个包含400列的数据框。

  2. 日期列的名称(如果日期在相应的间隔内)。像下面的输出

    ID  Within_Intrvl
    1   a_b  
    2   a  
    3   a_c
    

我已阅读此问题的答案[link],但没有帮助我。谢谢!

乔·艾琳杰里

假设您的数据已经使用lubridate进行了转换,

input<- df %>%
  mutate(start_date=ymd(start_date)) %>%
  mutate(end_date=ymd(end_date)) %>%
  mutate(a_date=ymd(a_date)) %>%
  mutate(b_date=ymd(b_date)) %>%
  mutate(c_date=ymd(c_date)) %>%
  mutate(Intrvl=interval(start_date, end_date)) 

您可以在lubridate中使用%within%运算符

result <- input %>%
  mutate(AinIntrvl=if_else(a_date %within% Intrvl,"a","")) %>%
  mutate(BinIntrvl=if_else(b_date %within% Intrvl,"b","")) %>%
  mutate(CinIntrvl=if_else(c_date %within% Intrvl,"c","")) %>%
  mutate(Within_Intrvl=paste(AinIntrvl,BinIntrvl,CinIntrvl,sep="_")) %>%
  select(-start_date,-end_date,-Intrvl,-a_date,-b_date,-c_date )

您可以根据自己的喜好设置“ Interior_Intrvl”列的格式,并确定要如何处理NA

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查 input() 是否在给定的时间间隔内?

检查日期是否在给定间隔内不起作用

如何在给定时隙中查找当前时间是否存在,以及如何在给定的天数之间找到日期

在给定间隔内使用ifelse()语句进行日期时间观察

检查当前时间是否在给定间隔GOLANG中

在给定的时间(或间隔)后,如何刷新jsp页面?

如何检查给定的小时和分钟(整数)是否在给定的时间范围内?

如何检查给定的小时和分钟(整数)是否在给定的时间范围内?

如何查找所需的工作日是否在给定的两个熊猫日期之间

如何在给定间隔内计算小时数

如何在给定间隔内启用/禁用按钮

如何查找在给定日期范围内创建的对象?

查找在给定时间范围内修改的文件

日期时间是否在JodaTime的间隔内?

如何在Microsoft Excel中检查日期是否在给定范围内

在给定的时间间隔内,一个时间范围有多少小时?

在给定日期时间之前查找列表中的最新日期时间

在给定的时间间隔中以熊猫为单位查找列的最小值

在给定的HDI间隔内找到CI?

在给定间隔内对整数进行排序

如何在给定间隔值的间隔内进行随机采样?

如何检查 DAX 中给定时间间隔内的值是否为负?

如何检查DART中是否存在给定的日期?

NetworkStatsManager.queryDetailsForUid在给定的时间间隔内未获取正确的数据

Skyfield:在给定的时间间隔内以1秒的周期获得sgp4结果

计算在给定时间范围内落入间隔的每个“ x”?

在给定的小时间隔范围内,从邮件列表生成文本文件

在给定UTC时间的情况下,以特定的邮政编码查找本地日期时间

在给定时间查找.wav的“音量”