我有这个数据
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”分组后,对data
为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)
关于r - 仅保留最近的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60998692/