Я пытаюсь удалить шаблон из строки с помощью gsub из следующего массива chr
articles<-c("RT @name1: hello world", "@nickname1: bye bye guys",
"RT @name2_surname2: I have no text", "Hello!")
Шаблон формируется с помощью терминов между @
и :
только в строках, которые начать с RT
. Следовательно, в нашем случае шаблон имеет вид:
"name1" "name2_surname2"
Шаблон можно получить с помощью
pat <- "^RT.*?@(.*?):.*"
res <- gsub(pat,"\\1",articles[grepl(pat,articles)])
. После удаления этого шаблона желаемый результат будет таким:
"RT : hello world", "@nickname1: bye bye guys",
"RT : I have no text", "Hello!"
В любом случае, когда я использую:
gsub(res,"",articles)
Я получаю неправильный результат:
[1] "RT @: hello world" "@nick: bye bye guys"
[3] "RT @name2_surname2: I have no text" "Hello!"
Warning message:
In gsub(res, "", articles) :
argument 'pattern' has length > 1 and only the first element will be used