【问题标题】:Reading undirected graph relationships (A-B) in R and renaming vertices with igraph在 R 中读取无向图关系 (A-B) 并使用 igraph 重命名顶点
【发布时间】:2014-02-13 15:49:49
【问题描述】:

在 R 中,我尝试使用 igraph 绘制马德里所有地铁站的地图,然后计算两个车站之间的最短路线(只是车站的数量,而不是距离)。我遵循以下语法:“一个无向图,有两个顶点,分别称为‘A’和‘B’,只有一条边: graph.formula(A-B)"

为了清楚起见,下面我只是复制了两条管道。

library("igraph")   
metro<- graph.formula(PinardeChamartin-Bambu-Chamartin-PlazadeCastilla-Valdeacederas-Tetuan-Estrecho-Alvarado-CuatroCaminos-RiosRosas-Iglesia-Bilbao-Tribunal-GranVia-Sol-TirsodeMolina-AntonMartin-Atocha-AtochaRenfe-MenendezPelayo-Pacifico-PuentedeVallecas-NuevaNumancia-Portazgo,LasRosas-AvenidadeGuadalajara-Alsacia-LaAlmudena-LaElipa-Ventas-ManuelBecerra-Goya-PrincipedeVergara-Retiro-BancodeEspana-Sevilla-Sol-Opera-SantoDomingo-Noviciado-SanBernardo-Quevedo-Canal-CuatroCaminos)  
sp <- get.shortest.paths(metro,from="Canal",to="Chamartin")  
V(metro)[sp[[1]]]

它似乎有效,但我有两个问题:
1. 如何更有效地将长列表的地铁站(节点)及其关系 A-B 输入到图表中,例如读取 csv?

2.如何重命名这些节点以包括波浪线、空格和“ñ”?因为我在每个节点的名称前后都尝试了双引号,但我得到了一个错误。一个+号。我已经检查了很多次长字符串,我看不到错误,没有括号丢失。
对不起,如果他们是非常基本的问题。我是一个非常新手的用户。
非常感谢

【问题讨论】:

  • 这里有关于在 R 中使用 igraph 的综合教程:igraph.wikidot.com/r-tutorial。它包括有关读取和存储数据的详细部分,可能有多种格式。字母上面的波浪号是一个编码问题,应该在存储和加载数据时处理。
  • 不幸的是,那里链接的教程已被遗弃和过时。可能仍然有用,但您还需要阅读当前文档。

标签: r networking routing igraph


【解决方案1】:

关于第一个问题,请参阅?graph.data.frame 和?read.csv。

我不太确定您在第二个问题中要问什么,您遇到的错误是什么。您的代码对我来说很好,需要对 igraph 0.7.x 进行修改:

V(metro)[sp$vpath[[1]]]
# Vertex sequence:
# [1] "Canal"           "CuatroCaminos"   "Alvarado"        "Estrecho"       
# [5] "Tetuan"          "Valdeacederas"   "PlazadeCastilla" "Chamartin"      

【讨论】:

  • 对不起,我的意思是如果我使用的不是那些名字
  • 对不起,我的意思是,如果我使用 graph.formula("Pinar de Chamartin"-"Bambú"-"Chamartín"...etc) 包含特殊字符,当我输入整个字符时会出错网络。一个 5.000 个字符长的字符串。当您离开左括号时,会出现一个 + 符号。我可以重命名这些顶点以包含那些特殊字符吗?顺便说一句,在发布我的原始代码后,我在家里收到错误“顶点序列的索引无效”。我不知道为什么(顶点为零?)
  • 请忘记之前的链接。这个:pastebin.com/UAkQq5zQ
  • 无效索引错误信息,请看我回答中的代码。对于其他问题,请将您的数据放入文件中。 graph.formula 用于创建小图。它不起作用,因为双引号不匹配。但同样,graph.formula 不适合这种大小的数据,将数据放在文件中。您可能已经将它保存在一个文件中。
  • 你从一开始就很准。您为无效索引发布的代码。我按照您自己的说明在 CSV 中重新排列我的数据,然后使用 graph.data.frame igraph.sourceforge.net/igraphbook/igraphbook-creating.html 它工作正常。太棒了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 2018-04-14
  • 2015-11-20
  • 2015-07-21
相关资源
最近更新 更多