2014-12-08 50 views
3

我認爲我在這裏丟失相當簡單,但是在R的igraph包中爲write.graph函數添加參數的語法是什麼?我正在嘗試使用加權邊緣和ID將網絡輸出到pajek格式的文件(.net)。我試過下面的命令,但不斷收到錯誤( 「未知參數write.graph(Pajek格式)。」):在igraph中使用write.graph輸出一個.net文件

write.graph(weightedg,file="musGiant2012.net", format="pajek",'weight') 
write.graph(weightedg,file="musGiant2012.net", format="pajek", id=TRUE) 
write.graph(weightedg,file="musGiant2012.net", format="pajek", ("id")) 

以及其他衆多。我很確定我提交了一個簡單的語法錯誤,但找不到任何關於如何糾正錯誤的指導。

+0

什麼是錯誤信息?他們可能會提供信息。 – thelatemail 2014-12-08 01:42:58

+0

write.graph(Pajek格式)的未知參數。每次都是一樣的。這就是爲什麼我猜測這只是一個語法問題。我嘗試添加args =,這也沒有奏效。 – 2014-12-08 01:58:20

+0

這是一個總的猜測,但我認爲你只需要在圖形本身設置權重和id,然後不要超過'format =「pajek」''傳遞任何進一步的參數。 – thelatemail 2014-12-08 02:14:24

回答

3

從文檔在http://igraph.org/r/doc/write.graph.html

的Pajek格式是一個文本文件,見read.graph瞭解詳情。適當的頂點和邊緣屬性也寫入文件。這種格式沒有其他參數。

http://igraph.org/r/doc/read.graph.html顯示支持邊權重,並支持頂點ID。因此,如果您將頂點ID作爲屬性id,並將邊權重作爲屬性weight,那麼您不需要任何額外的參數。例如。

library(igraph) 
g <- graph.ring(5) 
V(g)$id <- letters[1:5] 
E(g)$weight <- runif(ecount(g)) 

tmp <- tempfile() 
write.graph(g, file = tmp, format = "pajek") 

cat(readLines(tmp), sep = "\n") 

#> *Vertices 5 
#> 1 "a" 
#> 2 "b" 
#> 3 "c" 
#> 4 "d" 
#> 5 "e" 
#> *Edges 
#> 1 2 0.054399197222665 
#> 2 3 0.503386947326362 
#> 3 4 0.373047293629497 
#> 4 5 0.84542120853439 
#> 1 5 0.610330935101956 
相關問題