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))