2017-09-16 24 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) 
相关问题