【问题标题】:How to convert data frame to igraph graph object ?如何将数据框转换为 igraph 图形对象?
【发布时间】:2023-03-17 07:54:01
【问题描述】:

我有数据框格式的图表:

  V          V2       Weight
1 RNF14           V1DR 0.4055584
2 RNF14 DKFZp586J0119 0.1407795
3 RNF14         SMAD4 0.3571942
4 RNF14        UBE2D4 0.5070112
5 RNF14        EIF2B5 0.1407795

我想计算所有节点对之间的所有加权最短路径距离。 我尝试使用

distances(graph, v = V(graph), to = V(graph), mode = c("all", "out",
  "in"), weights = NULL, algorithm = c("automatic", "unweighted",
  "dijkstra", "bellman-ford", "johnson"))

来自 igraph 包,但它需要图形输入对象。 我想知道如何在保持边缘权重的同时将数据框转换为图形对象?

我发现了以下将数据框转换为图形对象的函数,但我不确定如何保持边缘权重

graph_from_data_frame(relations, directed=TRUE, vertices=actors)

【问题讨论】:

  • g = graph_from_data_frame(relations, directed=TRUE) 应该为relations 中的每个附加变量添加边属性。要查看边缘属性,请使用 edge_attr(g)

标签: r


【解决方案1】:
g = graph.data.frame(df[,c('V','V2')])
E(g)$weight = df$Weight

初始图表中的链接顺序应与数据框中的相同。您可以通过从数据框和图表中选择多个链接来进一步验证,以检查权重是否匹配:

df[c(5:10),]

应该匹配:

E(g)[5:10]
E(g)$weight[5:10]

【讨论】:

    猜你喜欢
    • 2011-06-21
    • 2012-08-25
    • 2020-08-03
    • 1970-01-01
    • 2010-12-04
    • 2021-06-20
    • 2015-02-17
    • 2015-06-28
    • 2021-11-01
    相关资源
    最近更新 更多