R-dplyr保留2个最近的(日期)行



我有一个包含组和日期的数据集,如下所示:

> 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

相关内容

  • 没有找到相关文章

最新更新