Как исправить «Ошибка: не удается выделить вектор размером 265,6 Мб» - PullRequest
0 голосов
/ 26 мая 2020

У меня очень большой список фреймов данных (300 фреймов данных, каждый с 2 ​​столбцами и 300 ~ 600 строками), и я хочу объединить их все с помощью

final <- subset %>% reduce(full_join, by = "Frame_times")

Когда я пытаюсь сделать это однако я получаю следующую ошибку:

Error: cannot allocate vector of size 265.6 Mb"

Я работаю на 64-разрядной версии Windows 10 с последней установкой 64-разрядной версии R (4.0.0). У меня 8 ГБ ОЗУ и

> memory.limit()
[1] 7974
> memory.size(max = TRUE)
[1] 7939.94

Я также пробовал функцию g c () , но это не помогло.

Похоже, у меня достаточно места и памяти для этого, так почему я получаю эту ошибку? А как исправить?

Спасибо большое!

1 Ответ

1 голос
/ 26 мая 2020

У вас заканчивается оперативная память. Первым шагом к устранению неполадок может быть первый запуск этого кода на меньшем подмножестве фреймов данных (скажем, 3). Результаты (в частности, количество строк) соответствуют вашим ожиданиям? Если да, и он действительно делает правильные вещи, то может помочь делать это партиями (скажем, 5 партий из 100). Похоже, что наиболее вероятный сценарий состоит в том, что по какой-то причине количество строк или столбцов резко возрастает до гораздо большего числа, чем вы ожидаете.

266 Мб, упомянутые в ошибке, - лишь последняя капля; не общий объем памяти, который вы используете.

...