Как извлечь конкретное число из строки в R - PullRequest
2 голосов
/ 14 апреля 2019

Мои данные выглядят так: x = when, ch_d_mean, <, 29.55 Я хочу извлечь 29.55 из x.</p>

x = 'when,ch_d_mean,< , 29.55'

Я хочу иметь значение 29,55

Ответы [ 3 ]

3 голосов
/ 14 апреля 2019

Вот базовая опция R:

x <- "when,ch_d_mean,< , 29.55"
regmatches(x, gregexpr("\\d+(?:\\.\\d+)?", x))[[1]]

[1] "29.55"

Обратите внимание, что этот подход является надежным в отношении захвата любого количества чисел во входной строке.

2 голосов
/ 14 апреля 2019

Мы можем использовать parse_number из readr

library(readr)
parse_number(x)
#[1] 29.55

или str_extract из `stringr

as.numeric(str_extract(x, "[0-9.]+"))
#[1] 29.55

или gsubот базы R

as.numeric(gsub("[^0-9.]+", "", x))
#[1] 29.55

или с использованием substring от базы R

as.numeric(substring(x, nchar(x)-4))
#[1] 29.55

ПРИМЕЧАНИЕ. Последний подход основан на позиции, если она находится в концестрока и занимает последние 5 позиций

1 голос
/ 14 апреля 2019

Другая возможность.Затем вы можете продолжить удаление лишних пробелов.

x = 'when, ch_d_mean,>=, 29.55, &, ch_d_mean,< ,0.1090'     
res<-unlist(strsplit(x,","))
res[grep("[0-9]",res)]
#[1] " 29.55" "0.1090"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...