删除所有年份中特定日期之前的所有日期

时间:2019-04-17 15:57:12

标签: r date dataframe

如何删除特定日期(例如3月15日)之前的所有日期?

dates <- seq(as.Date("1990/1/1"), as.Date("1999/1/1"), "days")

我需要基于此向量对数据帧进行子集化。

2 个答案:

答案 0 :(得分:3)

出于可读性考虑,我将使用lubridate

library(lubridate)
dates[month(dates) > 3 | (month(dates) == 3 & day(dates) >= 15)]

相同逻辑的基本版本:

dates[as.integer(format(dates, "%m")) > 3 |
    (as.integer(format(dates, "%m")) == 3 & as.integer(format(dates, "%d")) >= 15)]

答案 1 :(得分:0)

加起来使用Gregor的答案,但使用dplyr

library(dplyr)
library(lubridate)

filtered_df = df %>% filter((month(dates) == 3 & days(dates) >= 15) | month(dates) > 3)