我有一个包含日期列的数据框架,我想过滤这些行,只包括最接近今天的4个日期。所以在下面的数据集中,我只需要6/5/2022,5/29/2022,5/22/2022和5/15/2022,因为这是最近的4个日期。
Week State Actuals
5/19/2019 - 1
2/2/2020 - 1
5/17/2020 CA 1
6/14/2020 CA 1
9/27/2020 CA 1
4/10/2022 TX 1
4/17/2022 CA 3
4/24/2022 FL 1
4/24/2022 NV 1
4/24/2022 CA 55
4/24/2022 TX 2
5/1/2022 CA 29
5/1/2022 FL 1
5/1/2022 TX 3
5/8/2022 NV 2
5/8/2022 TX 3
5/8/2022 CA 34
5/8/2022 AZ 1
5/15/2022 TX 1
5/15/2022 CA 27
5/22/2022 CA 15
5/29/2022 TX 2
5/29/2022 CA 27
6/5/2022 TX 1
6/5/2022 CA 23
in base:
tail(unique(df[order(df$Week),]),4)
基于dplyr
和lubridate::mdy
的可能解决方案:
library(dplyr)
library(lubridate)
df %>%
filter(!duplicated(Week)) %>%
slice_max(mdy(Week), n = 4)
#> Week State Actuals
#> 1 6/5/2022 TX 1
#> 2 5/29/2022 TX 2
#> 3 5/22/2022 CA 15
#> 4 5/15/2022 TX 1