2 Вопрос: как поймать последний номер в предложении?

вопрос создан в Thu, May 2, 2019 12:00 AM

например:

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

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

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

86 р>

Н. р>

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

p.s. Я просто хочу поймать арабские цифры

    
1
2 ответа                              2                         

Мы можем использовать 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")
    
3
2019-05-02 15: 06: 39Z
  1. Что делать, если мои данные - это data.frame?
    2019-05-02 14: 58: 10Z

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

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

данные сильный> р>

x <- c('I want to get 10 apples, 99 bananas and 86 oranges', 'I want to buy a car')
    
5
2019-05-02 14: 54: 44Z
  1. Что делать, если мои данные - это data.frame?
    2019-05-02 14: 59: 08Z
  2. @ recon вместо x используйте тогда имя столбца. df$column_name.
    2019-05-02 15: 00: 18Z
  3. спасибо за ответ, приятель, но извините, что я думаю, что должен принять ответ @akrun, потому что он ответит мне первым. извини, приятель.
    2019-05-02 15: 05: 25Z
  4. @ без вопросов, вы можете принять любой ответ по вашему выбору:)
    2019-05-02 15: 15: 17Z
источник размещен Вот