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?