R: ошибка изменения формы / приведения памяти - PullRequest
1 голос
/ 19 апреля 2011

У меня есть большая таблица (x) для преобразования в матрицу (y).

Я использовал две разные команды.

x <- reshape(y, direction="wide", v.names="column1", 
             timevar="column2", idvar="column3")

или

x <- cast(x, column1~column2)

После ожидания в течение нескольких часов появляется сообщение об ошибке.

 Error: cannot allocate vector of size 87 KB

Кроме того: было 50 или более предупреждений (используйте предупреждение (), чтобы увидеть первые 50)

, когда я печатаю warnings(), я обнаружил, что это жалуется

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

Во втором испытании я сначала набираю "memory.size(TRUE), появляется сообщение:

[1] 12.88

Затем я делаю анализснова и снова. Однако, появляется то же сообщение об ошибке.

Я использую настольный ПК с Windows 2000. Я использую R2.12.0

Не могли бы вы сообщить мне, если этоМожно ли избавиться от этой проблемы?

Не могли бы вы дать мне знать, когда я впервые наберу memory.size(TRUE) «12.88», означает ли это, что все физические 12G являются оперативной памятью, легко используемой R ввторое испытание?

Ответы [ 2 ]

1 голос
/ 19 апреля 2011

В большинстве систем Windows использование памяти очень ограничено (в R).

Вы хотите посмотреть на результаты memory.limit вместо memory.size, а затем также использовать memory.limit для измененияit.

В лучшем случае вы можете увеличить это до 4 Гб, что может быть слишком мало для вашей цели (зависит от деталей вашей ОС - очевидно, на вашей машине достаточно оперативной памяти,поэтому физическая память здесь не является проблемой (пока)).

См. rw-FAQ для получения дополнительной информации.

0 голосов
/ 19 апреля 2011

Вы уверены, что у вас 12 ГБ ОЗУ или вы используете 64-разрядную версию Windows 2000?Если вы прочитаете ?memory.size, то увидите, что значение указано в байтах , а не в ГБ.

В основном сообщении говорится, что у вас заканчивается физическая память.Количество, упомянутое в предупреждениях размером 1535 МБ, указывает на машину с 2 ГБ физической ОЗУ или ОС, которая может получить доступ только к этой сумме или выделить такую ​​сумму для одного процесса.Если у вас действительно есть 12 ГБ физической ОЗУ, вам потребуется 64-разрядная версия R в 64-разрядной версии Windows на 64-разрядном процессоре.Все ли это применимо?Например, похоже, что вы работаете на машине с 2 ГБ ОЗУ или используете 32-разрядную версию R.

Проблема сводится к исчерпанию доступной оперативной памяти, к которой может обращаться R.Решите это или разбейте свою проблему на более мелкие куски и посмотрите, сможете ли вы изменить форму каждого меньшего кусочка, а затем соединить их вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...