#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