2

本教程包文档描述了如何处理 .net 格式的 pajek 文件,但我需要导入 .paj 文件。我不希望有可以导入所有 .paj 文件的代码,但也许有人的代码可以用于一些更简单的代码,然后我可以根据我的目的进行修改?

4

1 回答 1

2

我将从以下方法开始:

  1. 使用 读取整个文件readLines()
  2. 删除注释行,以 ' %' 开头的行。
  3. 将线条切成片,以星号(' *')开头的线条标志着新片的开始。
  4. 按照出现的顺序检查每个部分,并将它们转换为适当的 R 数据结构。

在第 4 步中,您可能有几种类型的片段:

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

要将一个片段转换为 igraph 图,请将其与紧随其后的,和/或片段*Network粘合在一起,然后通过. 这样您就不需要创建临时文件。*Vertices*Edges*Arcsread.graph(..., format="pajek")textConnection()

和部分很简单*Partition*Vector只需将它们转换为 R 向量,使用scan()and textConnection()

我还没有尝试过这一切,但我认为这并不太难,应该可以正常工作。告诉我你是否有任何困难。

此外,Pajek 文件格式的文档记录很差,所以我可能错了,可能还有其他片段类型等。

您还可以考虑在igraph 错误跟踪器中添加错误报告以请求此功能。

于 2012-08-31T01:15:02.943 回答