R: Wie kann ein Speicherüberlauf bei Verwendung von mgsub im Vektormodus verhindert werden?

Ich habe einen langen Vektor von Zeichen (z. B. "Hello World" usw.), 1,7 Millionen Zeilen, und ich muss Wörter in ihnen mithilfe einer Zuordnung zwischen zwei Vektoren ersetzen und das Ergebnis in demselben Vektor speichern. Hier ist ein einfaches Beispiel:

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

Ergebnis

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

ie Sie sehen können, ist jede Instanz vone[j] in line wird durch @ ersetr[j] und nurr[j]. Es funktioniert gut auf einer relativ kleinen "Linie" unde->r Vokabellänge, aber wenn ich auf @ lauflength(line) = 1700000 undlength(e) = 750, Ich erreiche den gesamten zugewiesenen Speicher:

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

Irgendwelche Ideen, wie man das vermeidet?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage