Мы можем использовать следующее:
df %>% group_by(ID, Link) %>%
mutate(RevisitedPages = 1 * (row_number() == 2)) %>%
group_by(ID) %>% mutate(RevisitedPages = cumsum(RevisitedPages))
# A tibble: 6 x 3
# Groups: ID [1]
# ID Link RevisitedPages
# <int> <fct> <dbl>
# 1 1 example.org 0
# 2 1 example.org/whatever 0
# 3 1 example.org/blank 0
# 4 1 example.org/whatever 1
# 5 1 example.org/whatever 1
# 6 1 example.org/blank 2
Таким образом, мы сначала смотрим на каждую пару (ID, ссылка) и помещаем 1 во второе посещение, если оно существует.Затем при группировке по идентификатору мы используем cumsum.