从星期日开始的过滤日期列

时间:2020-04-20 13:50:48

标签: r dplyr tidyverse lubridate

我有一个带有日期列的数据框,如下所示:

library(tidyverse)

df <- data.frame(
                id = c(1, 2, 4, 65, 77, 5, 4),
              date = c("2020-04-18", "2020-04-20", "2020-04-01", "2020-04-19",
                       "2020-04-02", "2020-04-01", "2020-04-20")
      ) %>% mutate(date = as.Date(date))

我想用最后一个星期日之前的元素系统地过滤date列。

今天是2020-04-20,它是星期一。 第一个星期日是2020-04-19

last_sunday <- as.Date(`2020-04-19`)

df %>% filter(date <= last_sunday)

  id       date
1  1 2020-04-18
2  4 2020-04-01
3 65 2020-04-19
4 77 2020-04-02
5  5 2020-04-01

如何以编程方式定义变量“ last_sunday”。

2 个答案:

答案 0 :(得分:0)

一个选项可能是:

df %>%
 filter(date <= min(date[as.POSIXlt(date)$wday == 0]))

  id       date
1  1 2020-04-18
2  4 2020-04-01
3 65 2020-04-19
4 77 2020-04-02
5  5 2020-04-01

答案 1 :(得分:0)

使用data

this.datasource.data = [...ELEMENT_DATA];//For your stackblitz
相关问题