跳到内容

read_graph() 函数能够从文件或 HTTP 连接中读取各种表示形式的图。支持多种格式。

用法

read_graph(
  file,
  format = c("edgelist", "pajek", "ncol", "lgl", "graphml", "dimacs", "graphdb", "gml",
    "dl"),
  ...
)

参数

file

要读取的连接。可以是本地文件,也可以是 httpftp 连接。也可以是带有文件名的字符串或 URI。

format

字符常量,用于指定文件格式。目前支持 edgelistpajekncollglgraphmldimacsgraphdbgmldl,默认为 edgelist。从 igraph 0.4 开始,此参数不区分大小写。

...

其他参数,请参见下文。

一个图对象。

详细信息

read_graph() 函数可能具有其他参数,具体取决于文件格式(format 参数)。请参阅下面每种文件格式的详细信息。

边列表格式

此格式是一个简单的文本文件,其中包含定义边的数字顶点 ID。无需在边之间使用换行符,简单的空格也可以。文件中包含的顶点 ID 假定从零开始。

其他参数

n

图中的顶点数。如果它小于或等于文件中最大的整数,则将被忽略;因此可以安全地将其设置为零(默认值)。

directed

逻辑标量,用于指定是否创建有向图。默认值为 TRUE

Pajek 格式

目前,igraph 仅支持带有 .net 扩展名的 Pajek 网络文件,而不支持带有 .paj 扩展名的 Pajek 项目文件。仅支持网络数据;不支持排列、层次结构、聚类和向量。

NCOL 格式

其他参数

predef

文件中顶点的名称。如果此处给出 character(0)(默认值),则将按照顶点在 .ncol 文件中出现的顺序将顶点 ID 分配给顶点名称。如果它不是 character(0) 并且在 .ncol 文件中找到一些未知顶点名称,则将为它们分配新的顶点 ID。

names

逻辑值,如果为 TRUE(默认值),则顶点的符号名称将作为名为“name”的顶点属性添加到图中。

weights

是否将边的权重作为名为“weight”的边属性添加到图中。"yes" 添加权重(即使它们不存在于文件中,在这种情况下,它们被假定为零)。"no" 不添加任何边属性。"auto"(默认值)仅当输入文件中至少有一个显式边权重时才添加该属性。

directed

是否创建有向图(默认值:FALSE)。由于此格式最初仅用于无向图,因此文件中没有关于图的定向性的信息。

GraphML 格式

GraphML 是一种基于 XML 的文件格式,用于表示各种类型的图。目前,igraph 中仅实现了最基本的导入功能:它可以读取没有嵌套图和超边的 GraphML 文件。

index

整数,指定从包含多个图的 GraphML 文件中读取哪个图。默认为 0,表示第一个图。

LGL 格式

.lgl 格式由 Large Graph Layout 可视化软件使用 (https://lgl.sourceforge.net),它可以描述无向的可选加权图

names

逻辑值,指示是否将顶点名称作为名为“name”的顶点属性添加。默认值为 TRUE。

weights

是否将边的权重作为名为“weight”的边属性添加到图中。"yes" 添加权重(即使它们不存在于文件中,在这种情况下,它们被假定为零)。"no" 不添加任何边属性。"auto"(默认值)仅当输入文件中至少有一个显式边权重时才添加该属性。

directed

逻辑值,指示是否创建有向图。默认值为 FALSE。

DIMACS 格式

这是一种面向行的文本文件 (ASCII) 格式。每行的第一个字符定义行的类型。如果第一个字符是 c,则该行是注释行,将被忽略。文件中有一行问题行(p),它必须出现在任何节点和弧描述符行之前。问题行有三个字段,用空格分隔:问题类型(max 或 edge)、图中的顶点数和边数。在 MAX 问题中,需要恰好两个节点识别行 (n),一个用于源顶点,一个用于目标顶点。这些行有两个字段:顶点的 ID 和顶点的类型,s (= 源) 或 t (= 目标)。弧线以 a 开头,有三个字段:源顶点、目标顶点和边容量。在 EDGE 问题中,每个节点可能有一行节点行 (n)。它指定节点索引和一个整数节点标签。没有指定显式标签的节点将使用其索引作为标签。在 EDGE 问题中,每条边都指定为边线 (e)。

directed

逻辑值,指示是否创建有向图。默认值为 TRUE。

DL 格式

这是 UCINET 使用的一种简单的文本文件格式。有关示例,请参阅 http://www.analytictech.com/networks/dataentry.htm。igraph 支持此处描述的所有形式。还支持顶点名称和边权重,它们将作为属性添加。(如果附加了属性处理程序。)请注意,规范中没有提及格式是否区分大小写。对于 igraph,DL 文件区分大小写,即 Larry 和 larry 是不同的。

directed

逻辑值,指示是否创建有向图。默认值为 TRUE。

GML 格式

GML 是一种非常通用的文本格式。有关实现的细节,请参阅 cClibrary 的链接文档。

GraphDB 格式

这是一种二进制格式,用于 ARG 图数据库中的同构测试。有关更多信息,请参阅 https://mivia.unisa.it/datasets/graph-database/arg-database/

directed

逻辑值,指示是否创建有向图。默认值为 TRUE。

参见

write_graph()

外部格式读取器 graph_from_graphdb(), write_graph()

作者

Gabor Csardi csardi.gabor@gmail.com