Мы можем использовать 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")