Fazer o gsub substituir apenas palavras inteiras?

(Estou usando R.) Para uma lista de palavras chamada "goodwords.corpus", estou percorrendo os documentos em um corpus e substituindo cada uma das palavras da lista "goodwords.corpus" pela palavra + a número.

Por exemplo, se a palavra "bom" estiver na lista e "boa noite" NÃO estiver na lista, então este documento:

I am having a good time goodnight

se transformaria em:

I am having a good 1234 time goodnight

** Estou usando este código (EDIT- tornou este reproduzível):

goodwords.corpus <- c("good")
test <- "I am having a good time goodnight"
for (i in 1:length(goodwords.corpus)){
test <-gsub(goodwords.corpus[[i]], paste(goodwords.corpus[[i]], "1234"), test)
}

No entanto, o problema é que eu quero que o gsub substitua apenas palavras INTEIRAS. O problema que surge é o seguinte: "good" está na lista "goodwords.corpus", mas, em seguida, "goodnight", que NÃO está na lista, também é afetado. Então eu entendi:

I am having a good 1234 time good 1234night

Existe alguma maneira de dizer ao gsub que substitua apenas palavras INTEIRAS, e não palavras que possam fazer parte de outras palavras?

Eu quero usar isso:

test <-gsub("\\<goodwords.corpus[[i]]\\>", paste(goodwords.corpus[[i]], "1234"), test)
}

Eu li que o \ <e \> dirá ao gsub para procurar apenas palavras inteiras. Mas, obviamente, isso não funciona, porque goodwords.corpus [[i]] não funciona quando está entre aspas.

Alguma sugestão?

questionAnswers(2)

yourAnswerToTheQuestion