igraph R 和 C,写入和读取具有属性的邻接矩阵

igraph R and C, writing and reading adjacency matrix with attributes

我想用 igraph R 可视化我用 igraph C 创建的网络图。

到目前为止,我已经使用这些命令将图形保存在 C 中:

FILE *ofile;
ofile=fopen("AdjacencyMatrix.csv", "w"); 
igraph_write_graph_pajek(&g, ofile);
fclose(ofile);

然后用这个从 R 中读取文件:

g<- read.graph("AdjacencyMatrix.csv", format = c("pajek"))

效果很好。

现在我想给边添加属性,以便区分两组边。为此,我正在使用 igraph C 教程中的示例 'Example 12.2. File examples/simple/cattributes2.c' 并在末尾添加上述行 将图表保存在 csv 文件中。现在出现两个问题:

a) 如果我使用 pajek 命令保存文件,保存的文件不包含任何属性,只包含连接

b) 如果我改用 'igraph_write_graph_graphml(&g, ofile, /prefixattr=/ 1);',我在尝试读取时收到以下错误消息 igraph R 中的文件:

g<- read.graph("AdjacencyMatrix.csv", format = c("graphml"))

警告信息: 在 .Call("R_igraph_read_graph_graphml", file, as.numeric(index), 中: 在 foreign-graphml.c:443 :Could not add vertex ids, 已经有一个 'id' 顶点属性

有人建议我如何解决这两个问题吗?

Re a): Pajek格式不支持任意属性,只支持一些专用的;有关详细信息,请参阅 igraph_read_graph_pajek 的文档。

Re b): 您收到的消息不是错误消息,只是警告。请随意忽略它 - 图表可能加载得很好。