【问题标题】:creating an object from edgelist in igraph从 igraph 中的边缘列表创建对象
【发布时间】:2021-06-27 14:05:50
【问题描述】:

我是 igraph 的新手。我将它与 R 一起使用(我也是新手)。 我想稍后使用 CINNA R 包,但我正在努力将我的网络加载到 igraph/从我的文件中创建一个 igraph 对象。 到目前为止我尝试过的:

  1. ```read.graph("file", format = "graphml")
    Error in read.graph.graphml(file, ...) :
    At rinterface.c:6077 : cannot open GraphML file, File operation error```
    
  2. ```read.graph("file", format="gml")```
    

--> 然后 R 崩溃。

  1. ```read.graph("file", format="edgelist")
    Error in read.graph.edgelist(file, ...) :
    At rinterface.c:5006 : cannot read edgelist, File operation error```
    
  2. ```graph_from_edgelist("file", directed=TRUE)
    Error in graph_from_edgelist("file",  : 
    graph_from_edgelist expects a matrix with two columns```
    

有人了解我的问题并知道如何解决吗?

【问题讨论】:

    标签: r matrix igraph edge-list


    【解决方案1】:

    您需要将文件作为数据框导入,然后您可以使用数据框创建 igraph 对象:

    这是来自igraph 的示例:

    library(igraph)
    
    df <- data.frame(
      A = c("Berlin", "Amsterdam", "New York") , 
      B = c("Munich", "Utrecht", "Chicago"))
    
    df.g <- graph.data.frame(d = df, directed = FALSE)
    
    plot(df.g, vertex.label = V(df.g)$name)
    

    更多解释,你可以看:

    Introduction to Network Analysis with R

    要将文件作为数据框导入,您可以尝试以下操作:

    links <- read.csv("Dataset1.csv", header=T, as.is=T)
    # or read.table(file='Dataset1.csv')
    head(links)
    net <- graph_from_data_frame(d=links, vertices=nodes, directed=T) 
    plot(net)
    

    另外,请在此处查看(第 3 部分):

    graph_from_data_frame

    要从便于 igraph 的格式创建图形,您可以使用:

    # possible formats : read_graph(file, format = c(“edgelist”, “pajek”, “ncol”, “lgl”, “graphml”, “dimacs”, “graphdb”, “gml”, “dl”), …)
    graph1 <- read.graph(file='your_file_name.gml',format="gml")
    class(graph1)
    plot(graph1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 2020-07-20
      • 2018-11-04
      • 1970-01-01
      相关资源
      最近更新 更多