【问题标题】:Fast greedy on graph objects图对象的快速贪心
【发布时间】:2018-09-11 03:06:13
【问题描述】:

所以我已经在 csv 文件中读取了我的网络数据,并通过执行以下操作将其转换为图形对象

g = read.csv"somefile.csv", header = FALSE)
G = graph.data.frame(g,directed=FALSE)
fc = cluster_fast_greedy(G)

Error in cluster_fast_greedy(G) : 
At fast_community.c:639 : fast-greedy community finding works only on graphs 
without multiple edges, Invalid value

非常有趣的是,我尝试直接加载graphml版本,并且可以运行fast greedy函数而没有错误。

我的问题是,如果我仅限于 csv 文件,如何在其上运行 fast_greedy 函数?

【问题讨论】:

    标签: r igraph


    【解决方案1】:

    正如错误消息所说,

    快速贪婪的社区发现仅适用于没有多重边的图

    但您可以使用simplify 函数删除多个边。 这是一个例子。首先,我创建了一个具有多条边的图 - 在其上 fastgreedy.community 失败。但简化后,它可以工作。

    set.seed(1234)
    g = erdos.renyi.game(12, 0.3)
    g = add_edges(g, c(1,5, 7,10))
    fastgreedy.community(g)
    Error in .Call("R_igraph_community_fastgreedy", graph, as.logical(merges),  : 
      At fast_community.c:553 : fast-greedy community finding works 
      only on graphs without multiple edges, Invalid value
    
    g = simplify(g)
    fastgreedy.community(g)
    IGRAPH clustering fast greedy, groups: 2, mod: 0.26
    + groups:
      $`1`
      [1]  1  3  4  5  9 10 11
    
      $`2`
      [1]  2  6  7  8 12
    

    【讨论】:

    • 这样就解决了问题。但是为什么我可以在csv版本失败的未修改的graphml数据上直接运行fast_greedy
    • 如果没有您的数据,就很难诊断。您能否举一个小例子,以便将数据添加到您的问题中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多