2017-09-16 57 views
3

我使用GML圖形文件格式將圖形讀入igraph(R版本)。有沒有辦法將邊緣屬性設置爲字符串?似乎有些屬性標籤允許有字符串值,而另一些則不允許。示例輸入文件:如何使用gml格式文件將igraph邊緣屬性設置爲字符串?

graph [ 
node [ 
    id 1 
    control 1 
    label "CiscoSW-1" 
] 
node [ 
    id 2 
    control 1 
    label "CiscoSW-z" 
] 
edge [ 
    source 1 
    target 2 
    difficulty 'A,B,C' 
    label "CiscoSW-1" 
] 
] 
+2

我認爲這個問題可能是使用'」「'的困難,而不是'」 「'。你可以'gsub'這些,然後它應該工作 – user20650

+1

聖牛......現在感覺很愚蠢......謝謝! – Aengus

回答

2

看起來好像read_graph不喜歡單引號' ',所以你將需要交換這些出來雙引號" "

要做到這一點的一種方法是讀取文件gsub刪除違規報價,然後再與read_graph一起閱讀。所以,如果你的圖形文件保存爲so.gml,然後

# Read in file, `gsub` quotes and write to tempfile() 
r <- gsub("[']", "\"", readLines("so.gml")) 
cat(r, file=temp<-tempfile()) 

# Read amended gml file 
g <- read_graph(temp, format="gml") 

檢查邊緣屬性如預期

edge.attributes(g) 
相關問題