Seleccione varias columnas con dplyr :: select () con números como nombres

Digamos que tengo el siguiente marco de datos:

a <- runif(10)
dd <- as.data.frame(t(a))
names(dd) <- c("ID", "a", "a2", "b", "b2", "f", "XXX", "1", "4", "8")

Endplyr, hay una buena manera de seleccionar varias columnas. Por ejemplo, para seleccionar las columnas entre columnasa&nbsp;y columnaf, Puedo usar

dd %>% dplyr::select(a:f)

En mi problema, las columnas de la última parte del marco de datos pueden variar, pero siempre tienen como nombre un número entre 1 y 99. Sin embargo, parece que no puedo hacer el mismo truco que el anterior:

> dd %>% select(1:99)
Error: Position must be between 0 and n
> dd %>% select("1":"99")
Error: Position must be between 0 and n

Lo cual es porque usandoselect()&nbsp;intenta seleccionar columnas por posición de esta manera.

Me gustaría poder obtener un marco de datos con todas las columnas entrea&nbsp;yfy aquellos con etiquetas que son números entre1&nbsp;y99. ¿Es posible hacerlo de una vez conselect()?