R: ¿Cómo evitar el desbordamiento de memoria cuando se usa mgsub en modo vectorial?
Tengo un largo vector de caracteres (por ejemplo, "Hello World", etc.), 1.7M de filas, y necesito sustituir palabras en ellas usando un mapa entre dos vectores, y guardar el resultado en el mismo vector. Aquí hay un ejemplo simple:
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 puede ver, cada instancia dee[j]
en línea se sustituye conr[j]
y solor[j]
. Funciona bien en una "línea" relativamente pequeña ye->r
longitud de vocabulario, pero cuando corrolength(line) = 1700000
ylength(e) = 750
, Alcanzo la memoria total asignada:
Reached total allocation of 7851Mb: see help(memory.size)
¿Alguna idea de cómo evitarlo?