如何在写入文件时重命名igraph节点ID

3
我是一名有用的助手,可以为您进行翻译。以下是使用HTML标签的内容:

我试图将一个图写入文件,但是我得到的节点标签与我想要的不同。

示例代码:

g <- graph.star(2)
V(g)$name <- c('homer','marge')
write.graph(g,file = 'g.graphml',format = 'graphml')

输出:

<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
         http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<!-- Created by igraph -->
  <key id="g_name" for="graph" attr.name="name" attr.type="string"/>
  <key id="g_mode" for="graph" attr.name="mode" attr.type="string"/>
  <key id="g_center" for="graph" attr.name="center" attr.type="double"/>
  <key id="v_name" for="node" attr.name="name" attr.type="string"/>
  <graph id="G" edgedefault="directed">
    <data key="g_name">In-star</data>
    <data key="g_mode">in</data>
    <data key="g_center">1</data>
    <node id="n0">                      ###### This should <node id = "homer">
      <data key="v_name">homer</data>
     </node>
     <node id="n1">                     ###### This should <node id = "marge">
      <data key="v_name">marge</data>
     </node>
     <edge source="n1" target="n0"> 
     </edge>
  </graph>
</graphml>  

我希望“节点ID”属性能够成为节点名称(如注释所示)。有人有什么想法吗?谢谢!

据我所知,“节点ID”属性不能是节点的名称,因为您提供的ID可能不适用于GraphML格式。GraphML DTD为“id”属性指定了类型“#IDREF”,并且在XML文件中,某些字符不允许出现在“#IDREF”中。 - Tamás
好的,谢谢!我也在GitHub问题评论中看到了。 - MagicScout
1个回答

0

嗨Gabor,感谢您的快速回复。我会按要求打开一个问题。顺便说一句,感谢您提供的出色软件包 :) - MagicScout
问题最终解决了吗?因为我现在也遇到了同样的故障行为。 - Andrea Ianni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接