Поддержание порядка извлечения шаблонов из строк в R - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь извлечь шаблон из строки, но мне сложно поддерживать порядок. Рассмотрим:

library(stringr)
string <- "A A A A C A B A"
extract <- c("B","C")
str_extract_all(string,extract)

[[1]]
[1] "B"

[[2]]
[1] "C"

Результатом этого является список; Можно ли вернуть вектор, который поддерживает исходный порядок, то есть "C" предшествует "B" в строке? Я попробовал много вариантов gsub, но не повезло. Спасибо.

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Попробуйте использовать следующее регулярное выражение:

str_extract_all(string,"[BC]")
## [[1]]
## [1] "C" "B"

или более широко:

str_extract_all(string, paste(extract, collapse = "|"))
0 голосов
/ 13 марта 2019
string <- "A A A A C A B A B"
extract <- c("B","C")

inds = unlist(sapply(extract, function(p){
    as.numeric(gregexpr(p, string)[[1]])
}))
sort(inds[inds > 0])
# C B1 B2 
# 9 13 17 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...