2013-09-06 3 views
2

Я знаю, что есть много вопросов о памяти о R, но почему это может иногда найти место для объекта, но в других случаях это не так. Например, я запускаю 64-битное R на Linux, на интерактивном узле с 15-гигабайтной памятью. Мое рабочее пространство почти пуст:Проблема с памятью в R

dat <- lsos() 
dat$PrettySize 
[1] "87.5 Kb" "61.8 Kb" "18.4 Kb" "9.1 Kb" "1.8 Kb" "1.4 Kb" "48 bytes" 

Первый раз, когда я загрузить R после CD'ing в нужный каталог, я могу загрузить штраф RDATA. Но тогда иногда мне нужно, чтобы загрузить его, и я получаю обычно:

> load("PATH/matrix.RData") 
Error: cannot allocate vector of size 2.9 Gb 

Если я могу загрузить его один раз, и есть достаточно (я предполагаю, смежную) комнату, то, что происходит? Мне что-то не хватает?

+0

Возможный дубликат [Ошибка памяти при использовании write.csv] (http://stackoverflow.com/questions/10768834/memory-error-while-using-write-csv) – Metrics

+0

@Метрики, в то время как ответ Гэвина полезен и Соответственно, он не решает эту проблему. –

+0

@ Рикардо: Спасибо. Я верну это. – Metrics

ответ

1

Основной ответ заключается в том, что функция выделения памяти должна находить непрерывную память для построения объектов (как постоянных, так и временных) и других процессов (R-процесс или другие), возможно, фрагментировала доступное пространство. R не удалит объект, который будет перезаписан до завершения процесса загрузки, поэтому, даже если вы считаете, что можете добавить новые данные поверх старых данных, это не так.

Смежные вопросы