2015-08-20 7 views
0

Этот вопрос аналогичен вопросу о стеке Regular expression parsed with grepl replacement.Заменить только разобранное регулярное выражение

Целью является разобрать регулярное выражение и заменить ТОЛЬКО совпадающий шаблон. Пример:

data <- c("cat 6kg","cat g250", "dog","cat 10 kg", "no cat") 

Для разбора матчей интерес cat:

data[grepl("cat",data)] 
[1] "cat 6kg" "cat g250" "cat 10 kg" "no cat" 

идеальный результат заменяет все вхождения cat с chicken:

[1] "chicken 6kg" "chicken g250" "chicken 10 kg" "no chicken" 

Любая идея, как добиться этого? Спасибо, парни.

ответ

1

Использование GSUB:

gsub("cat", "chicken", data) 

[1] "chicken 6kg" "chicken g250" "dog"   "chicken 10 kg" "no chicken" 

или если вы хотите только те, содержащие кошку:

gsub("cat", "chicken", data[grepl("cat",data)]) 

[1] "chicken 6kg" "chicken g250" "chicken 10 kg" "no chicken" 
+0

Спасибо! Это трюк. Я забыл упомянуть, что результат должен также содержать запись «собака» (без изменений). Любая идея, как это сделать? – remi

+0

это первый – jeremycg

 Смежные вопросы

  • Нет связанных вопросов^_^