Select 数据基于一个月中的某一天,"If date is lesser than a day in a month"

Select data based on a day in a month, "If date is lesser than a day in a month"

我有一个包含日期列的数据集:

id date
1 2018-02-13
2 2019-02-28
3 2014-01-23
4 2021-10-28
5 2022-01-23
6 2019-09-28

我想要 select 日期小于 2 月 15 日的数据

我尝试使用 ifelse 语句在我的数据库中定义每年的 2 月 15 日,但我想知道是否有更简单的方法!

这是我期待的结果

id date
1 2018-02-13
3 2014-01-23
5 2022-01-23

提前致谢

你可以使用 lubridate

library(lubridate)
library(dplyr)

d %>% filter(month(date)<2 | (month(date)==2 & day(date)<=15))

输出:

  id       date
1  1 2018-02-13
2  3 2014-01-23
3  5 2022-01-23

这是一个基本的 R 选项。使用 format 检查 month/year 是否在 1 月 1 日和 2 月 15 日之间。

df[between(format(df$date, "%m%d"), "0101", "0215"),]

输出

  id       date
1  1 2018-02-13
3  3 2014-01-23
5  5 2022-01-23