Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.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'中的内存不足;s曲线图_R_Memory_Igraph - Fatal编程技术网

R'中的内存不足;s曲线图

R'中的内存不足;s曲线图,r,memory,igraph,R,Memory,Igraph,我发现一个大型图(200K个节点)的共生矩阵: 然后问题就出现了 Error in cocitation(graph):At vector.pmt:125 : cannot init vector, Out of memory 我如何解决这个问题 非常感谢内存不足问题的一般解决方案是 用你的代码做一些聪明的事情,这样它就不会占用太多内存 买更多的公羊(通常比闲逛的时间便宜) 使用其中一个并联机构在多台机器之间分散负载 包裹 使用bigmemory软件包 使用数据集的子集 我同意Ian Fell

我发现一个大型图(200K个节点)的共生矩阵:

然后问题就出现了

Error in cocitation(graph):At vector.pmt:125 : cannot init vector, Out of memory
我如何解决这个问题


非常感谢

内存不足问题的一般解决方案是

  • 用你的代码做一些聪明的事情,这样它就不会占用太多内存

  • 买更多的公羊(通常比闲逛的时间便宜)

  • 使用其中一个并联机构在多台机器之间分散负载 包裹

  • 使用
    bigmemory
    软件包

  • 使用数据集的子集


  • 我同意Ian Fellows的观点,在这种情况下,最后一个选项可能是您的最佳选择。

    内存不足问题的一般解决方案是

  • 用你的代码做一些聪明的事情,这样它就不会占用太多内存

  • 买更多的公羊(通常比闲逛的时间便宜)

  • 使用其中一个并联机构在多台机器之间分散负载 包裹

  • 使用
    bigmemory
    软件包

  • 使用数据集的子集


  • 我同意Ian Fellows的观点,在这种情况下,最后一个选项可能是您的最佳选择。

    问题在于igraph试图分配一个200K x 200K矩阵来存储结果。尽管该矩阵中的大多数元素可能是零,但igraph没有单独的稀疏矩阵数据类型,因此它必须分配一块内存来容纳所有4 x 1010元素,这是行不通的

    由于您很可能不需要一次使用整个矩阵,而是对该矩阵的一些常规统计信息感兴趣,因此您可以简单地创建一个从零到顶点数减1的for循环(因为igraph索引从零开始-注意,对于R接口,这将在0.6中发生变化),并计算一行共沉淀矩阵:

    for (i in 0:vcount(g)-1) {
        row <- cocitation(g, v=i)
        # Do whatever you want with the row here
    }
    
    for(0中的i:vcount(g)-1){
    
    row问题在于igraph试图分配一个200K x 200K的矩阵来存储结果。虽然该矩阵中的大多数元素可能为零,但igraph没有单独的稀疏矩阵数据类型,因此它必须分配一块内存来容纳所有4 x 1010元素,这是行不通的

    由于您很可能不需要一次使用整个矩阵,而是对该矩阵的一些常规统计信息感兴趣,因此您可以简单地创建一个从零到顶点数减1的for循环(因为igraph索引从零开始-注意,对于R接口,这将在0.6中更改),并计算一行共沉淀矩阵:

    for (i in 0:vcount(g)-1) {
        row <- cocitation(g, v=i)
        # Do whatever you want with the row here
    }
    
    for(0中的i:vcount(g)-1){
    
    行创建一个200000×200000的矩阵是一个相当大的任务。尽管将来访问此页面的人会像“只有200k个节点?我可以在我的烤面包机上运行”一样,但请尝试获取您正在查看的顶点的协作信息(即协作(图,v=1)。创建一个200000 x 200000的矩阵是一个相当大的任务。请尝试获取您正在查看的顶点的协作信息(即协作(图,v=1),尽管将来访问此页面的人会像“只有200k个节点?我可以在我的烤面包机上运行它”。