在R中使用igraph导出图形

3 投票
1 回答
1767 浏览
提问于 2025-04-17 22:20

我有一个很大的igraph对象,它里面有很多边和顶点的属性,我需要把这些属性写到一个文件里,以后再加载回来(可能是用其他程序,比如Python)。

> g
IGRAPH DN-- 85000 1000000 -- 
+ attr: name (v/c), numeric_var (e/n), binary_outcome1 (e/x), binary_outcome2 (e/x)

那么我应该用什么格式来写所有的边属性到文件里呢?

write.graph(g, file = "test1.fileextension",format = "which_format?")

非常感谢!

1 个回答

6

关于各种支持的格式的优缺点,R语言的igraph库在read.igraph的帮助文档中有详细说明:http://igraph.sourceforge.net/doc/R/read.graph.html。而write.igraph页面则展示了更多输出类型的支持。

  • Edge List 对你的需求来说可能太简单了。
  • Pajek 可能太专业化了,并且有一些和GraphML相似的限制。
  • Dot 可能能满足你的需求(参考:http://www.graphviz.org/Documentation/dotguide.pdf)。
  • GraphML 无法处理超图、嵌套图或混合(有向/无向)图。
  • GML 说明“只使用节点和边的属性,并且只有在它们是简单类型时:整数、实数或字符串。所以如果一个属性是数组或记录,它就会被忽略。如果属性的某些值是复杂的,这也是适用的。”
  • DL 可能不适合你。
  • NCOL 只是“一个符号加权边列表”,所以也可能不合适。
  • LGL 也可能太简单了,无法满足需求。
  • DIMACS 没有你需要的额外信息。
  • LEDA(我认为)只支持单一属性。
  • GraphDB 也有一些限制。

所以,我建议你试试GraphMLGML

撰写回答