Вот один из подходов. Дайте мне знать, если у вас есть логин c, который вы ищете.
library(tidyverse)
data %>%
group_by(UniqueID) %>%
mutate(Skip = if_else(Month - lag(Month, default = first(Month) - 1) - 1 > 0 |
(Month == last(Month) & Month != 14), 1, 0),
CountSkip = cumsum(Skip))
# A tibble: 17 x 4
# Groups: UniqueID, CountSkip [9]
UniqueID Month Skip CountSkip
<chr> <int> <dbl> <dbl>
1 ABC123 1 0 0
2 ABC123 2 0 0
3 ABC123 3 0 0
4 ABC123 4 0 0
5 ABC123 6 1 1
6 ABC123 7 1 2
7 DEF456 3 0 0
8 DEF456 4 0 0
9 DEF456 10 1 1
10 DEF456 11 0 1
11 DEF456 12 0 1
12 DEF456 14 1 2
13 GHI789 2 0 0
14 GHI789 3 1 1
15 JKL012 12 0 0
16 JKL012 13 0 0
17 JKL012 14 0 0
Данные (из @akrun)
data <- structure(list(UniqueID = c("ABC123", "ABC123", "ABC123", "ABC123",
"ABC123", "ABC123", "DEF456", "DEF456", "DEF456", "DEF456", "DEF456",
"DEF456", "GHI789", "GHI789", "JKL012", "JKL012", "JKL012"),
Month = c(1L, 2L, 3L, 4L, 6L, 7L, 3L, 4L, 10L, 11L, 12L,
14L, 2L, 3L, 12L, 13L, 14L)), class = "data.frame", row.names = c(NA,
-17L))