Here is a start on how I wold do that.
library(tidyverse)
#> Warning: package 'tibble' was built under R version 4.1.2
DF <- data.frame(Group = c(1,1,1,2,2,2,3,3,3,3),
ID = c(1:5,1,6,5,1,3))
DF
#> Group ID
#> 1 1 1
#> 2 1 2
#> 3 1 3
#> 4 2 4
#> 5 2 5
#> 6 2 1
#> 7 3 6
#> 8 3 5
#> 9 3 1
#> 10 3 3
FilterFunc <- function(G, DATA) {
IDS <- DATA |> filter(Group == G - 1)
DATA |> filter(Group == G, !ID %in% IDS$ID)
}
Groups = c(2,3)
map_dfr(Groups, FilterFunc, DATA = DF)
#> Group ID
#> 1 2 4
#> 2 2 5
#> 3 3 6
#> 4 3 3
Created on 2022-03-09 by the reprex package (v2.0.1)