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)
Есть идеи как этого избежать?