R: Como evitar o estouro de memória ao usar o mgsub no modo vetorial?

Eu tenho um longo vetor de caracteres (por exemplo, "Hello World", etc.), 1,7 milhão de linhas e preciso substituir palavras nelas usando um mapa entre dois vetores e salvar o resultado no mesmo vetor. Aqui está um exemplo simples:

library(qdap)
line = c("one", "two one", "four phones")
e = c("one", "two")
r = c("ONE", "TWO")
line = mgsub(e,r,line)

Resultado:

[1] "ONE"  "TWO ONE" "four phONEs"

Como você pode ver, cada instância dee[j] na fila é substituído porr[j] e somenter[j]. Funciona bem em uma "linha" relativamente pequena ee->r vocabulário, mas quando eu corrolength(line) = 1700000 elength(e) = 750, Alcanço a memória total alocada:

Reached total allocation of 7851Mb: see help(memory.size)

Alguma idéia de como evitá-lo?

questionAnswers(3)

yourAnswerToTheQuestion