У меня есть вектор из трех символов, и я пытаюсь написать команду, которая найдет, какие элементы вектора имеют конкретную букву в качестве второго символа.Совпадение частичных строк с grep и регулярными выражениями
В качестве примера, скажем, у меня есть этот вектор 3-буквенных жал ...
example = c("AWA","WOO","AZW","WWP")
я могу использовать grepl и glob2rx для поиска строк с W в качестве первого или последнего символа.
> grepl(glob2rx("W*"),example)
[1] FALSE TRUE FALSE TRUE
> grepl(glob2rx("*W"),example)
[1] FALSE FALSE TRUE FALSE
Однако, я не получаю правильный результат, когда я пытаюсь использовать его с glob2rx(*W*)
> grepl(glob2rx("*W*"),example)
[1] TRUE TRUE TRUE TRUE
Я уверен, что мое понимание регулярных выражений не хватает, но это кажется довольно простой проблемой и я не могу найти решение. Мне бы очень понравилась помощь!
Для дальнейшего использования, мне также очень хотелось бы знать, могу ли я распространить это на случай, когда у меня есть более длинные строки. Скажем, у меня есть строки длиной 5 символов, можно ли использовать grepl таким образом, чтобы возвращать строки, где W - третий символ?
Идеально, и это может быть легко применено и к строкам другой длины. Благодаря! Если у кого-то есть аналогичная проблема и требуется эквивалентная команда команды grep, это будет ... > который (substr (пример, 2, 2) == "W") [1] 1 4 – Starcalibre