2012-08-31 157 views

回答

2

我会用下面的方法启动:

  1. 阅读使用readLines()整个文件。
  2. 删除注释行,以'%'开头的行。
  3. 将线条切成小块,以星号('*')开始的线条标记新片段的开始。
  4. 检查每件作品出现的顺序并将其转换为适当的R数据结构。

在第4步,你可能有件几种类型:

  • *Network是网络的开始。
  • *Vertices定义了顶点并属于之前的网络。
  • *Edges定义了无向边,它属于前一个网络。
  • *Arcs定义有向边,它属于以前的网络。
  • *Partition是分区的开始。
  • *Vector是一个向量的开始。

对于*Network片转换成的igraph曲线图中,与*Vertices*Edges和/或*Arcs,经过右它来片粘合在一起,然后通过一个textConnection()调用read.graph(..., format="pajek")。这样你就不需要创建临时文件。

*Partition*Vector件很简单,只是将它们转换为R向量,使用scan()textConnection()

我还没有尝试过所有这些,但我认为这不是太困难,应该可以正常工作。告诉我,如果你有任何困难。

此外,Pajek文件格式记录不完整,所以我可能是错的,可能还有其他类型的片等

您也可以考虑在igraph bug tracker加入一个bug报告,请求该功能。

+0

我已经为此提交了一个错误报告:https://bugs.launchpad.net/igraph/+bug/1046133 –