Transformar coluna em chr e transformar numeros em NA

Olá, pessoal. Tudo bem? Estou com uma dúvida que surgiu aqui e não soube responder.

Suponha que eu tenha o seguinte tibble:

tibble::tribble(~colA, ~colB, "a", 1, "0,01", 2, "0.02", 3, "b", 
    3, "0,01", 3, "0.02", 3, "c", 3, "0,01", 3, "0.02", 3, )

#> # A tibble: 9 x 2
#>   colA   colB
#>   <chr> <dbl>
#> 1 a         1
#> 2 0,01      2
#> 3 0.02      3
#> 4 b         3
#> 5 0,01      3
#> 6 0.02      3
#> 7 c         3
#> 8 0,01      3
#> 9 0.02      3

Minha necessidade é que a colA permanece como chr porém, transforme todos os números em NA. Algo assim:

#> # A tibble: 9 x 2
#>   colA   colB
#>   <chr> <dbl>
#> 1 a         1
#> 2 <NA>      2
#> 3 <NA>      3
#> 4 b         3
#> 5 <NA>      3
#> 6 <NA>      3
#> 7 c         3
#> 8 <NA>      3
#> 9 <NA>      3 

Alguma ideia de como fazer isso? Sei que parece fácil, porém não consegui bolar nenhuma ideia. Ah, repare que alguns “números” são com . e outros com ,.

Agradeço,

Rafael

A solução mais simples que consegui pensar foi com um str_detect():

df <- tibble::tribble(
  ~colA, ~colB,
  "a", 1,
  "0,01", 2,
  "0.02", 3,
  "b", 3,
  "0,01", 3,
  "0.02", 3,
  "c", 3,
  "0,01", 3,
  "0.02", 3
)

dplyr::mutate(df,
  colA = ifelse(stringr::str_detect(colA, "^[0-9,.]+$"), NA_character_, colA)
)
#> # A tibble: 9 x 2
#>   colA   colB
#>   <chr> <dbl>
#> 1 a         1
#> 2 <NA>      2
#> 3 <NA>      3
#> 4 b         3
#> 5 <NA>      3
#> 6 <NA>      3
#> 7 c         3
#> 8 <NA>      3
#> 9 <NA>      3

Created on 2021-03-03 by the reprex package (v1.0.0)