R 只保留最近的日期

R 只保留最近的日期,r,datatable,R,Datatable,我有这些数据 data;code 18/02/2020;C106 05/04/2018;C107 11/09/2016;C107 16/02/2019;C109 11/03/2020;C110 04/03/2020;C114 18/02/2020;C114 06/02/2020;C121 我想为每个代码选择最近的日期,如下所示: data;code 18/02/2020;C106 05/04/2018;C107 16/02/2019;C109 11/03/2020;C110 04/03/202

我有这些数据

data;code
18/02/2020;C106
05/04/2018;C107
11/09/2016;C107
16/02/2019;C109
11/03/2020;C110
04/03/2020;C114
18/02/2020;C114
06/02/2020;C121
我想为每个代码选择最近的日期,如下所示:

data;code
18/02/2020;C106
05/04/2018;C107
16/02/2019;C109
11/03/2020;C110
04/03/2020;C114
06/02/2020;C121
我试过:

tapply(data$data, data$code, max)
但我收到了这个:

Error in Summary.factor(7L, na.rm = FALSE) : 
  ‘max’ not meaningful for factors 

使用
dplyr
,在按“code”分组后,
slice
数据所在的行
max

library(dplyr)
library(lubridate)
data %>%
    group_by(code) %>%
    slice(which.max(dmy(data)))

或者在
base R
中,我们可以使用
aggregate

aggregate(cbind(data = as.Date(data, '%d/%m/%Y')) ~ code, data, max)

这使用
dplyr
lubridate
格式化
数据
列,按
code
列分组,并对每个
代码
的最新(
last
)日期进行过滤

library(dplyr)
library(lubridate)

df %>% 
  mutate(data = dmy(data)) %>% 
  group_by(code) %>% 
  filter(data == last(data))