Вы можете использовать stringr
пакет:
library(stringr)
unlist(str_extract_all(input, "NM_\\d+"))
#[1] "NM_000775" "NM_001014975" "NM_001080484"
Как akrun упоминалось, можно также избежать unlist()
просто используя str_extract()
:
str_extract(input, "NM_\\d+")
#[1] "NM_000775" "NM_001014975" "NM_001080484"
Используемое регулярное выражение, NM_\\d+
, будет соответствовать всем, начиная с NM_
, за которым следует одна или несколько цифр.
В зависимости от того, NM_
специфичен к примеру, или является представителем вашей конкретной проблемы, вы можете обобщить регулярное выражение [A-Z]{2}_\\d+
или, как akrun упоминалось, \\w+_\\d+
.
'read.table (текст = х) [4]' – rawr
оба работают очень хорошо. Большое спасибо rawr & akrun! –