как я могу str_extract число, используя stringr в R

#r

#r

Вопрос:

 a <- c("AB,DF14:07GHJ456.9Y","RTY00:00KL23.40T")
 

Как я могу извлечь «456.9» и «23.40»?
И преобразовать их в числа?

Ответ №1:

Одним из базовых способов R было бы :

 a <- c("AB,DF14:07GHJ456.9Y","RTY00:00KL23.40T")
b <- as.numeric(sub('.*?(\d \.\d )[A-Z]', '\1', a))
b
#[1] 456.9  23.4
 

Или используя stringr :

 as.numeric(stringr::str_extract(a, '\d \.\d (?=[A-Z]$)'))
#[1] 456.9  23.4
 

Ответ №2:

Вы могли бы использовать stringr с некоторым регулярным выражением:

 library(stringr)
as.double(str_extract(a, pattern = "[0-9] \.[0-9] "))
 

Ответ №3:

Использование base R с regmatches/regexpr

 as.numeric(regmatches(a, regexpr("[0-9] \.[0-9] ", a)))
#[1] 456.9  23.4