R - Identifique uma sequência de elementos de linha por grupos em um dataframe

Considere o seguinte exemplo de quadro de dados:

> df
   id name time
1   1    b   10
2   1    b   12
3   1    a    0
4   2    a    5
5   2    b   11
6   2    a    9
7   2    b    7
8   1    a   15
9   2    b    1
10  1    a    3

df = structure(list(id = c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L), 
    name = c("b", "b", "a", "a", "b", "a", "b", "a", "b", "a"
    ), time = c(10L, 12L, 0L, 5L, 11L, 9L, 7L, 15L, 1L, 3L)), .Names = c("id", 
"name", "time"), row.names = c(NA, -10L), class = "data.frame")

Eu preciso identificar e gravar todas as sequênciasseq <- c("a","b"), em que "a" precede "b" com base na coluna "hora", para cada ID. Nenhum outro nome entre "a" e "b" é permitido. O comprimento real da sequência é pelo menos 5. O resultado esperado para os dados da amostra é

  a  b
1 3 10
2 5  7
3 9 11

Existe uma pergunta semelhanteLocalizando linhas no dataframe R onde um valor de coluna segue uma sequência. No entanto, não está claro para mim como lidar com a coluna "id" no meu caso. É uma maneira de resolver o problema usando "dplyr"?

questionAnswers(3)

yourAnswerToTheQuestion