Ваше регулярное выражение не удаляет все символы, не входящие в ASCII.
grep('^(\\s*[[:punct:]]*\\s*)+|^\\s*\\d{1,2}\\s*$|^\\s+$|(^\\s*
[[:ascii:]]{1}\\s*$)|(^\\s*[^[:ascii:]]{1}\\s*$)',
c("Úa", "Ú", "b"), perl = TRUE, value=TRUE)
[1] "Úa" "Ú" "b"
Попробуйте "[^u0000-u007F]+"
:
grep("[^u0000-u007F]+", c("Úa", "Ú", "b"), perl = TRUE, value=TRUE)
[1] "Úa" "Ú"
Тогда также str_remove_all()
работает как положено:
library(stringr)
str_remove_all(c("Úa", "Ú", "b"), "[^u0000-u007F]+")
[1] "a" "" "b"