我有一个开始和结束日期的列表,我希望找出其中哪些属于我的日期(在这种情况下,这只是最后3个日期/天).如果开始日期和结束日期之间的任何日期在最近3天内,则我希望保留这些日期

 myDates = c(20240320, 20240319, 20240318)

datesToSearch
itemNo             start    end
241             20240311 20240317
242             20240316 20240317
243             20240319 20240321
244             20240318 20240324
300             20240318 20240324

在这里,我只是返回一个DF与匹配的数据,在这种情况下,

correctdatesToSearch
itemNo             start    end
243             20240319 20240321
244             20240318 20240324
300             20240318 20240324

推荐答案

如果将日期转换为实际日期对象,而不是使用整数表示日期,则会容易得多.您使用的格式可以使用lubridate::ymd轻松转换.我们可以在动态中执行此操作,也可以使用lubridate函数interval%within%来找出哪些行包含了一个或多个您的日期,然后过滤掉结果:

library(lubridate)

df[ymd(myDates) |>
    sapply(\(x) x %within% interval(ymd(df$start), ymd(df$end))) |>
    apply(1, any),] 
#>   itemNo    start      end
#> 3    243 20240319 20240321
#> 4    244 20240318 20240324
#> 5    300 20240318 20240324

R相关问答推荐

无法运行通过R中的Auto.arima获得的ARIMA模型

行式dppr中的变量列名

使用R中相同值创建分组观测指标

为什么观察不会被无功值变化触发?

par函数中的缩写,比如mgp,mar,mai是如何被破译的?

如何同时从多个列表中获取名字?

在使用bslb和bootstrap5时,有没有办法更改特定dt行的 colored颜色 ?

使用rvest从多个页面抓取时避免404错误

`lazy_dt`不支持`dplyr/across`?

如何指定我的函数应该查找哪个引用表?

自动STAT_SUMMARY统计与手动标准误差之间的差异

创建列并对大型数据集中的特定条件进行成对比较的更高效程序

为什么我对圆周率图的蒙特卡罗估计是空的?

变长向量的矢量化和

根据r中每行中的日期序列,使用列名序列创建新列

创建新列,其中S列的值取决于该行S值是否与其他行冗余

如何合并不同列表中的数据文件,包括基于名称的部分匹配,而不是一对一等价

使用一个标签共享多个组图图例符号

为什么R列名称忽略具有指定名称的向量,而只关注索引?

在shiny /bslb中,当卡片是从json生成时,如何水平排列卡片?