R gsub несколько условий

Я пытаюсь использовать gsub для набора строк, которые могут слегка отличаться в формулировке;

I went to the store last night
I went to the park yesterday
I went to starbucks this morning

Мне нужно использовать gsub для замены "Я пошел в...", но иногда у него будет "", а иногда нет

Как то так, но следующее не будет работать должным образом

gsub('i went to [the|a-z]','REPLACED',string)

REPLACED last night
REPLACED yesterday
REPLACED this morning

2 ответа

Решение

Пытаться:

gsub("I went to (the )?[a-z]", "REPLACED", string)

Вы могли бы использовать stringr пакет со следующим регулярным выражением (закрепленным в начале строки с помощью ^):

library(stringr)
sentences <- c("I went to the store last night",
               "I went to the park yesterday",
               "I went to starbucks this morning")
str_replace(sentences, "^I went to( the)?", "REPLACED")
# [1] "REPLACED store last night"       "REPLACED park yesterday"        
# [3] "REPLACED starbucks this morning"

Если есть несколько экземпляров для замены в одной строке, вы можете пропустить ^ и использовать str_replace_all()

Другие вопросы по тегам