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

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

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

x <- "900 years old"

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

print("contains numbers")
}

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

r
1
srb633 10 Апр 2020 в 16:53

2 ответа

Лучший ответ

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

str_detect(x, "[0-9]")
str_detect(x, "\\d")
str_detect(x, "[[:digit:]]")
4
Gregor Thomas 10 Апр 2020 в 14:52

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

grepl('[0-9]', x)
1
akrun 10 Апр 2020 в 17:27