как поймать последний номер в предложении? - PullRequest
1 голос
/ 02 мая 2019

например:

'Я хочу получить 10 яблок, 99 бананов и 86 апельсинов.'

'Я хочу купить машину'

Что я хочусделать, это получить последний номер в предложении.Я надеюсь, что результат:

86

NA

Как я могу сделать это с помощью R?спасибо ~

ps я просто хочу поймать арабские цифры

Ответы [ 2 ]

5 голосов
/ 02 мая 2019

Используя stringi, мы можем использовать stri_extract_last_regex, который будет возвращать последний сопоставленный шаблон в строке.

as.numeric(stringi::stri_extract_last_regex(x, "\\d+"))
#[1] 86 NA

data

x <- c('I want to get 10 apples, 99 bananas and 86 oranges', 'I want to buy a car')
3 голосов
/ 02 мая 2019

Мы можем использовать str_extract из stringr, который также основан на tidyverse

library(stringr)
as.numeric(sapply(str_extract_all(str1, "\\d+"), tail, 1))
#[1] 86 NA

Или просто используя только base R

as.numeric(sub(".* (\\d+).*", "\\1", str1))
#[1] 86 NA

Если это data.frame, мы извлекаем столбец и обновляем столбцы

df1$col1 <- as.numeric(sapply(str_extract_all(df1$col1, "\\d+"), tail, 1))

Кроме того, мы можем найти больше ресурсов по этой ссылке

Данные

str1 <- c("I want to get 10 apples, 99 bananas and 86 oranges.",
    "I want to buy a car")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...