gpt4 book ai didi

r - 在 R 中加载/读取数据占用太多内存

转载 作者:行者123 更新时间:2023-12-04 11:39:37 25 4
gpt4 key购买 nike

我正在使用 R 进行一些数据分析。系统规范:i5 + 4GB RAM。
出于某种原因,我的 R session 占用了比我的数据大得多的 RAM 块,这让我几乎没有空间用于其他操作。

我读了 550MB csv 文件,内存占用 R:1.3 - 1.5GB
我将 csv 保存为 .RData 文件。 文件大小:183MB .在 R 中加载文件,内存被 占用R: 780MB .
知道为什么会发生这种情况以及如何解决吗?

编辑:
该文件有 123 列和 1190387 行。变量的类型为 numint .

最佳答案

一个数值( double 浮点数)存储在 8 个字节的 ram 中。
整数值(在本例中)使用 4 个字节。
您的数据有 1,190,387 * 123 = 146,417,601 个值。
如果所有列都是数字,则使用 1,171,340,808 字节的 ram (~1.09GB)。
如果全部都是整数,则需要 585,670,404 个字节(~558MB)。

因此,您的数据使用 780MB 内存是完全合理的。

非常一般的建议:

  • 将您的 data.frame 转换为矩阵。矩阵运算通常具有较少的开销。
  • 尝试 R 包 bigmemory:http://cran.r-project.org/web/packages/bigmemory/index.html
  • 买更多的公羊。可能您的机器最多可支持 16GB。
  • 不要同时将所有数据加载到 ram 中。加载行或列的子集、分析、保存结果、重复。
  • 使用一个非常小的测试数据集来设计您的分析,然后在另一台具有更多内存的机器/服务器上分析完整的数据集。
  • 关于r - 在 R 中加载/读取数据占用太多内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11715408/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com