我有一个包含组和日期的数据集,如下所示:
> df
Group Date
1 01-01-2016
1 01-02-2016
1 01-03-2016
2 01-04-2016
2 01-05-2016
2 01-06-2016
我只想保留最近的一行加上最近的第二行。所以我想以这个结束:
> df
Group Date
1 01-02-2016
1 01-03-2016
2 01-05-2016
2 01-06-2016
直到现在,我把它按日期排序如下:
sorted_data <- df %>% arrange(Group,Date)
我还发现,只要得到最近的日期行,我就可以这样做:
df %>%
group_by(Group) %>%
slice(which.max(as.Date(Date, '%d-%m-%Y')))
但我不知道如何保持最近的两排,有人知道吗?
这行吗:
library(dplyr)
df %>% mutate(Date = lubridate::dmy(Date)) %>% group_by(Group) %>% slice_max(Date,n= 2)
# A tibble: 4 × 2
# Groups: Group [2]
Group Date
<dbl> <date>
1 1 2016-03-01
2 1 2016-02-01
3 2 2016-06-01
4 2 2016-05-01