在R中使用igraph导出图形
我有一个很大的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
也有一些限制。
所以,我建议你试试GraphML
和GML
。