r-如果某个延迟日期出现在我的df中,或者找到下一个,如何准确地过滤它



我需要在df中过滤准确的日期范围延迟,但我不知道如何在R.中解决这个问题

如果过滤器在我的df中找不到某个日期(行(,那么转到下一个日期延迟。

library(dplyr)
library(lubridate)
df <- 
data.frame(
fcst.dates = c(
"2022-01-01",
"2022-01-02",
"2022-01-03",
"2022-01-05",
"2022-01-06",
"2022-01-08",
"2022-01-09",
"2022-01-11",
"2022-01-12",
"2022-01-13",
"2022-01-14",
"2022-01-17"
),
y = rnorm(12, 0, 1),
yhat = rnorm(12, 0, 1)
) %>%
mutate(
fcst.dates = as.Date(fcst.dates),
Obs = max(fcst.dates) - fcst.dates,
delay = as.numeric(Obs)
)

但想象一下,我需要过滤过去延迟的13天。。。

filter0 <- df %>%
filter(
delay == 13
)

很明显,它在此筛选器中返回0。但是,如果过滤器没有为下一个值找到13(例如14或15(,我如何将其更改为动态更改?

看起来这可能会奏效:

df %>%
filter(delay >= 13) %>% 
tail(1)

相关内容

最新更新