R: Как предотвратить переполнение памяти при использовании mgsub в векторном режиме?

У меня длинный вектор символов (например, «Hello World» и т. Д.), 1,7 млн ​​строк, и мне нужно заменить слова в них, используя карту между двумя векторами, и сохранить результат в одном и том же векторе. Вот простой пример:

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

Результат:

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

Как видите, каждый экземплярe[j] в строке заменяетсяr[j] и толькоr[j], Он отлично работает на сравнительно небольшой "линии" иe->r длина словарного запаса, но когда я бегу поlength(line) = 1700000 а такжеlength(e) = 750Я достигаю общей выделенной памяти:

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

Есть идеи как этого избежать?

Ответы на вопрос(3)

Ваш ответ на вопрос