dummy_cols Ошибка: векторная память исчерпана (предел достигнут?) - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь создать фиктивные переменные на основе факторной переменной с более чем 200 факторными уровнями.Данные имеют более 15 миллионов наблюдений.Используя пакет "fastDummies", я использую команду "dummy_cols", чтобы преобразовать фактор-переменную в макеты и удалить первую.

Я прочитал множество постов по этой проблеме.Некоторые предлагают подгруппировать данные, что я не могу сделать.Этот анализ предназначен для школьного задания, которое требует, чтобы я использовал все включенные данные.

Я использую 16 ГБ ОЗУ Macbook Pro с 64-разрядной версией RStudio.Инструкции в посте ниже указывают, как увеличить максимальный объем ОЗУ, доступный для R. Однако инструкции, по-видимому, подразумевают, что у меня уже есть максимальная емкость или что моей машине может быть небезопасно пытаться снять ограничение памяти на R.

R в MacOS Ошибка: векторная память исчерпана (предел достигнут?)

Я не уверен, как разместить 15 миллионов строк данных.В следующем коде показаны уровни уникальных факторов для рассматриваемой переменной:

unique(housing$city)
[1] 40   80   160  200  220  240  280  320  440  450  460  520  560  600  640 
 [16] 680  720  760  840  860  870  880  920  960  1000 1040 1080 1120 1121 1122
 [31] 1150 1160 1240 1280 1320 1360 1400 1440 1520 1560 1600 1602 1620 1640 1680
 [46] 1720 1740 1760 1840 1880 1920 1950 1960 2000 2020 2040 2080 2120 2160 2240
 [61] 2290 2310 2320 2360 2400 2560 2580 2640 2670 2680 2700 2760 2840 2900 2920
 [76] 3000 3060 3080 3120 3160 3180 3200 3240 3280 3290 3360 3480 3520 3560 3590
 [91] 3600 3620 3660 3680 3710 3720 3760 3800 3810 3840 3880 3920 3980 4000 4040
 [106] 4120 4280 4320 4360 4400 4420 4480 4520 4600 4680 4720 4800 4880 4890 4900
 [121] 4920 5000 5080 5120 5160 5170 5200 5240 5280 5360 5400 5560 5600 5601 5602
 [136] 5603 5605 5790 5800 5880 5910 5920 5960 6080 6120 6160 6200 6280 6440 6520
 [151] 6560 6600 6640 6680 6690 6720 6740 6760 6780 6800 6840 6880 6920 6960 6980
 [166] 7040 7080 7120 7160 7240 7320 7360 7362 7400 7470 7480 7500 7510 7520 7560
 [181] 7600 7610 7620 7680 7800 7840 7880 7920 8000 8040 8050 8120 8160 8200 8280
 [196] 8320 8400 8480 8520 8560 8600 8640 8680 8730 8760 8780 8800 8840 8880 8920
 [211] 8940 8960 9040 9080 9140 9160 9200 9240 9260 9280 9320

Я использовал следующие команды для создания фиктивных переменных на основе пакета fastDummies:

library(fastDummies)
housing <- dummy_cols(housing, select_columns = "city", remove_first_dummy = TRUE)

Iполучите следующий ответ:

Error: vector memory exhausted (limit reached?)

Я снова пытаюсь создать 220 манекенов на основе 221 уровня (исключая первый, чтобы избежать проблем с совершенной коллинеарностью в анализах).

Любойпомощь приветствуется.Если я что-то упустил из-за предыдущих предложений, мои извинения;ни один из них не касался именно той проблемы, с которой я столкнулся (в контексте создания манекенов), и я не очень хорошо умею использовать командную строку в Mac OS.

1 Ответ

0 голосов
/ 17 февраля 2019

Обновление: я использовал метод в R на MacOS. Ошибка: исчерпана векторная память (достигнут предел?) при использовании терминала для удаления ограничения использования памяти по умолчанию, выделенного для R, и я смог выполнитьнеобходимые операции (хотя они занимали очень много времени).

Однако я все еще обеспокоен тем, что это может быть проблематично для вычислительной мощности.Может ли удаление этих ограничений по умолчанию для памяти, используемой R, повредить мой компьютер?Activity Monitor говорит, что моя rsession использует почти 48 ГБ ОЗУ, когда у меня есть только физическая память на плате 16 ГБ.

Я понимаю, что я, возможно, иду здесь грань между кодированием и программным вопросом, нодва в этом случае связаны между собой.

...