У меня есть следующая строка:
string <- c("ABDSFGHIJLKOP")
и список подстрок:
sub <- c("ABDSF", "SFGH", "GHIJLKOP")
Я хотел бы включить ‹ и > после каждого дополнительного совпадения, получив таким образом:
<ABD><SF><GH><GHIJKOP>
Я попробовал следующий код путем сопоставления с образцом по списку, но как только ABDSF сопоставляется, SFGH больше не распознается из-за включения символов ‹>. У кого-нибудь есть идея получше?
library(stringr)
library(dplyr)
library(magrittr)
string <- c("ABDSFGHIJLKOP")
sub <- c("ABDSF", "SFGH", "GHIJLKOP")
for (s in sub){
string %<>% str_replace_all(., s, paste0('<', s,'>'))
}
print(string)
Result: [1] "<ABDSF><GHIJLKOP>"
РЕДАКТИРОВАТЬ: Проблема, с которой я сталкиваюсь в приведенном выше коде, заключается в том, что как только вставляются символы ‹>, после совпадения первой строки вторая строка SFGH больше не распознается, потому что теперь строка:
<ABDSF>GHIJLKOP.
Поэтому я ищу способ сопоставить подстроки, игнорируя символы ‹>.
insert_str(mystring,c("<",">"),c(0,4))
дает: ‹ABD›SFGHIJLKOP - person NelsonGon   schedule 28.12.2018<ABDSF><SFGH><GHIJKOP>
? - person Shique   schedule 28.12.2018