Определить, содержит ли строка символов какие-либо числа? - PullRequest
1 голос
/ 10 апреля 2020

Я пытался произнести этот заголовок в течение 5 минут, чтобы избежать повторения подобного вопроса. Не повезло, поэтому извиняюсь, если это уже обсуждалось. Я не мог найти другие темы по этому конкретному вопросу.

Проще говоря, я хочу определить, существуют ли числа в строке символов класса. Если true, примените другие функции.

Вот изворотливая попытка.

x <- "900 years old"

if(str_detect(x, ">=0")) {

print("contains numbers")
}

Итак, очевидно, проблема в том, что я пытаюсь использовать реляционные операторы внутри символьной строки. Учитывая, что это из этого класса, как я могу определить цифры c символов?

Ответы [ 2 ]

4 голосов
/ 10 апреля 2020

[0-9] - это шаблон регулярных выражений для чисел от 0 до 9. Вы также можете использовать специальные шаблоны \d или [:digit:] (для цифр). В R вы должны добавить дополнительные экранированные символы к специальным шаблонам. Все это должно работать:

str_detect(x, "[0-9]")
str_detect(x, "\\d")
str_detect(x, "[[:digit:]]")
1 голос
/ 10 апреля 2020

С base R мы можем использовать grepl

grepl('[0-9]', x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...