【问题标题】:dummy_cols Error: vector memory exhausted (limit reached?)dummy_cols 错误:向量内存耗尽(达到限制?)
【发布时间】:2019-07-10 20:46:09
【问题描述】:

我正在尝试基于具有 200 多个因子水平的因子变量创建虚拟变量。该数据有超过 1500 万个观测值。使用“fastDummies”包,我使用“dummy_cols”命令将因子变量转换为虚拟变量,并删除第一个。

我已经阅读了很多关于这个问题的帖子。有几个建议对数据进行子集化,我不能这样做。此分析适用于要求我使用所有包含数据的学校作业。

我正在使用 16GB RAM Macbook Pro 和 64 位版本的 RStudio。下面帖子中的说明说明了如何增加 R 可用的最大 RAM。但是,这些说明似乎暗示我已经处于最大容量,或者我的机器尝试提高 R 的内存限制可能是不安全的.

R on MacOS Error: vector memory exhausted (limit reached?)

我不确定如何发布 1500 万行数据。以下代码显示了相关变量的唯一因子水平:

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)

我收到以下回复:

Error: vector memory exhausted (limit reached?)

我再次尝试根据 221 个级别创建 220 个虚拟对象(不包括第一个,以避免分析中的完美共线性问题)。

非常欢迎任何帮助。如果我遗漏了前面的建议,我深表歉意;它们都没有涉及我遇到的确切问题(在创建假人的情况下),而且我对 Mac OS 中命令行的使用不是很熟练。

【问题讨论】:

    标签: r out-of-memory dummy-variable


    【解决方案1】:

    更新:我使用了R on MacOS Error: vector memory exhausted (limit reached?) 中使用终端的方法来删除分配给 R 的默认内存使用上限,并且能够执行我需要的操作(尽管它们花了很长时间)。

    但是,我仍然担心这可能会给计算能力带来问题。删除 R 使用的内存的这些默认限制会损坏我的计算机吗? Activity Monitor 说我的 rsession 使用了将近 48 GB 的 RAM,而我只有 16 GB 的物理内存。

    我知道我在这里可能是在编码和软件问题之间徘徊,但在这种情况下,两者是相关的。

    【讨论】:

      猜你喜欢
      • 2018-12-07
      • 2018-12-17
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 2019-12-28
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      相关资源
      最近更新 更多