Извлечь символ из имени файла +1 символ - PullRequest
3 голосов
/ 07 апреля 2020

Я хочу иметь возможность извлечь символ из имени файла. Я хочу извлечь символ B + 1

df <- c("2010-01-14_B1_RP_NEG_09.mzML","2010-01-14_B1_RP_NEG_10.mzML","2010-01-15_B2_RP_NEG_11.mzML","2010-01-15_B2_RP_NEG_12.mzML", "2010-01-16_B3_RP_NEG_13.mzML", "2010-01-16_B3_RP_NEG_14.mzML")
df

Это можно сделать следующим образом:

substring(df,12,13)

Но при длинном имени файла было бы удобно узнать, как извлечь символ B + 1 , Этот код извлекает символы после B.

substring(df, regexpr("B", df)+1)

Он должен выглядеть так:

B1, B1, B2, B2, B3, B3

Любые хорошие предложения? :)

Ответы [ 2 ]

3 голосов
/ 07 апреля 2020

Используя sub, мы можем извлечь "B", за которым следует число.

sub(".*(B\\d+).*", "\\1", df)
#[1] "B1" "B1" "B2" "B2" "B3" "B3"

Или с str_extract:

stringr::str_extract(df, "B\\d+")
1 голос
/ 07 апреля 2020

Мы можем использовать substr с trimws в base R

substr(trimws(df, whitespace = '^[^_]+_'), 1, 2)
#[1] "B1" "B1" "B2" "B2" "B3" "B3"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...