r - 如何使用 gml 格式文件将 igraph 边缘属性设置为字符串?

标签 r igraph

我使用 GML 图形文件格式将图形读入 igraph(R 版本)。有没有办法将边缘属性设置为字符串?似乎某些属性标签允许具有字符串值,而其他属性标签则不允许。输入文件示例:

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"
]
]

最佳答案

似乎 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)

关于r - 如何使用 gml 格式文件将 igraph 边缘属性设置为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255602/

相关文章:

r - 如何用另一个字符串顺序替换字符串的子序列

r - 在ggplot2 map /geom_polygon中仅绘制外边界

r - 在数据框中选择某些字符串

r - 透明度可以与 PostScript/EPS 一起使用吗?

r - 如何在 R 的 igraph 图中为重复值添加一行?

python - 为什么 igraph 的 add_vertices() 不能处理一组字符串?

r - R ifelse错误地用整数替换文本

r - 防止 R igraph 添加零顶点

python - NetworkX 中按边和节点属性查询图的最佳实践

python - 从共同作者数据创建边缘列表