Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 存储和使用内存太大的数据帧的最佳做法?_R_Out Of Memory - Fatal编程技术网

R 存储和使用内存太大的数据帧的最佳做法?

R 存储和使用内存太大的数据帧的最佳做法?,r,out-of-memory,R,Out Of Memory,我使用的是大数据帧,遇到了RAM限制。此时,我可能需要使用磁盘上的序列化版本。有很多方法可以支持内存不足操作,但我不确定哪种方法适合我的需要。我更愿意将所有内容都保存在数据帧中,因此ff包看起来令人鼓舞,但仍然存在兼容性问题,我无法解决 当您意识到数据已超出内存范围时,第一个要使用的工具是什么?您可能想看看这些软件包: 用于“平面文件”存储和非常高效的检索(可以执行data.frames;不同的数据类型) 对于R内存不足但仍在RAM(或文件备份)中的情况,请使用(只能执行矩阵;数据类型相同)

我使用的是大数据帧,遇到了RAM限制。此时,我可能需要使用磁盘上的序列化版本。有很多方法可以支持内存不足操作,但我不确定哪种方法适合我的需要。我更愿意将所有内容都保存在数据帧中,因此
ff
包看起来令人鼓舞,但仍然存在兼容性问题,我无法解决


当您意识到数据已超出内存范围时,第一个要使用的工具是什么?

您可能想看看这些软件包:

  • 用于“平面文件”存储和非常高效的检索(可以执行data.frames;不同的数据类型)
  • 对于R内存不足但仍在RAM(或文件备份)中的情况,请使用(只能执行矩阵;数据类型相同)
  • 适用于使用
    lm()
    glm()
    样式型号的内存不足型号

也可以查看任务视图。

如果您正在处理内存问题,则应尝试以下步骤:

  • 清除消耗RAM的附加进程。请确保您打开的浏览器中没有很多选项卡,因为它们似乎消耗了大量内存

  • 完成步骤1后,了解数据集文件的结构。为此,请使用read.csv(nrow=100)。通过这样做,您将了解什么是列和列结构。如果您发现任何列没有用处,请将其删除

  • 一旦知道了列结构(colclasses),就可以一次性导入整个数据帧

  • 以下是示例代码:

    initial <- read.table("datatable.txt", nrows = 100)
    classes <- sapply(initial, class)
    tabAll <- read.table("datatable.txt", colClasses = classes)
    
    initial我想说,对于这些类型的任务,最合适的人选是。我是该软件包的主要作者

    ff
    bigmemory
    不同的是,它试图“模拟”
    data.frame
    s并提供用于操作数据的
    dplyr
    谓词