Is this what you are after?
data <- data.frame(
stringsAsFactors = FALSE,
identifer=c("a","a","a","b","b","b","c","c", "d", "d", "d", "d"),
id = c(1L, 2L, 3L,1L, 2L, 3L,1L, 2L,1L, 2L, 3L,4L ),
date = c("2020-01-25","2020-01-25","2020-01-25", "2021-02-10","2021-02-10","2021-02-10", "2021-03-15","2021-03-15","2021-03-17","2021-03-17","2021-03-17","2021-03-17")
)
data
#> identifer id date
#> 1 a 1 2020-01-25
#> 2 a 2 2020-01-25
#> 3 a 3 2020-01-25
#> 4 b 1 2021-02-10
#> 5 b 2 2021-02-10
#> 6 b 3 2021-02-10
#> 7 c 1 2021-03-15
#> 8 c 2 2021-03-15
#> 9 d 1 2021-03-17
#> 10 d 2 2021-03-17
#> 11 d 3 2021-03-17
#> 12 d 4 2021-03-17
library(dplyr)
MaxID <- data %>% group_by(identifer, date) %>% summarize(id = max(id))
#> `summarise()` has grouped output by 'identifer'. You can override using the
#> `.groups` argument.
MaxID
#> # A tibble: 4 × 3
#> # Groups: identifer [4]
#> identifer date id
#> <chr> <chr> <int>
#> 1 a 2020-01-25 3
#> 2 b 2021-02-10 3
#> 3 c 2021-03-15 2
#> 4 d 2021-03-17 4
data2 <- semi_join(data, MaxID, by = c("identifer", "id", "date"))
data2
#> identifer id date
#> 1 a 3 2020-01-25
#> 2 b 3 2021-02-10
#> 3 c 2 2021-03-15
#> 4 d 4 2021-03-17
Created on 2022-03-27 by the reprex package (v0.2.1)