2012-08-31 187 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 –