Separando coluna usando separado (tidyr) via dplyr em um primeiro dígito encontrado

Estou tentando separar uma coluna bastante bagunçada em duas colunas contendoperíodo edescrição. Meus dados se assemelham à extração abaixo:

set.seed(1)
dta <- data.frame(indicator=c("someindicator2001", "someindicator2011",
                              "some text 20022008", "another indicator 2003"),
                  values = runif(n = 4))
Resultados desejados

Os resultados desejados devem ter a seguinte aparência:

          indicator   period    values
1     someindicator     2001 0.2655087
2     someindicator     2011 0.3721239
3         some text 20022008 0.5728534
4 another indicator     2003 0.9082078
CaracterísticasAs descrições dos indicadores estão em uma colunaValores numéricos (contando desde o primeiro dígitocom o primeiro dígito está na segunda coluna)Código
require(dplyr); require(tidyr); require(magrittr)
dta %<>%
  separate(col = indicator, into = c("indicator", "period"),
           sep = "^[^\\d]*(2+)", remove = TRUE)

Naturalmente, isso não funciona:

> head(dta, 2)
  indicator period    values
1              001 0.2655087
2              011 0.3721239
Outras tentativasEu também tentei o método de separação padrãosep = "[^[:alnum:]]" mas divide a coluna em muitas colunas, pois parece corresponder a todos os dígitos disponíveis.osep = "2*" também não funciona, pois há muitos 2s às vezes(exemplo:20032006).

O que estou tentando fazer se resume a:

Identificando o primeiro dígito na stringSeparando nessa carta.De fato, eu ficaria feliz em preservar esse personagem em particular também.

questionAnswers(1)

yourAnswerToTheQuestion