我正在构建一个空间网络,其中边代表现实世界中两个位置之间的移动,边在移动发生的次数中的权重, node 是空间中的点.
例如,以机场为例.其中 node 是机场,边是机场之间的航班数,每条边都有一个属性距离(即机场之间的公里).我的希望是,然后在一些下游分析中使用该距离(不确定它们是否有用).
无论如何,我不太确定如何将空间信息集成到图形层中(即将距离归因于边).通常,如果在数据帧中工作,我会执行连接,但考虑到iggraph对象 struct ,我不确定如何执行此操作.考虑到我拥有的大量数据,通过按图形边的顺序设置属性来手动完成这项工作是不可行的.
这里有一个可重复使用的小例子.在实际情况下,我从大型邻接矩阵计算边,其中有行表示出发(From)和到达(To).我可以使用早先与空间点相关联的坐标来计算距离,但是如何将所有内容整合到图形中呢?
library(igraph)
g = make_graph(c("Paris", "Amsterdam", "Amsterdam",
"London", "Milan", "Paris", "Dublin", "London"), directed = TRUE)
g
#> IGRAPH 3c2accf DN-- 5 4 --
#> + attr: name (v/c)
#> + edges from 3c2accf (vertex names):
#> [1] Paris ->Amsterdam Amsterdam->London Milan ->Paris
#> [4] Dublin ->London
用于创建边的数据如下所示.它是Tibble格式的,然后使用xTabs转换成iggraph所需的 struct 来制作图层.
edges = tibble(from = c("Paris","Amsterdam","Milan","Dublin"), to = c("Amsterdam","London","Paris","London"))
edges = xtabs(~ from + to, edges)
edges
#> to
#> from Amsterdam London Paris
#> Amsterdam 0 1 0
#> Dublin 0 1 0
#> Milan 0 0 1
#> Paris 1 0 0
我猜有一些简单的方法可以通过匹配字符串将特定的边与特定的属性相关联,但不确定如何做到这一点.最终,我想要实现的就是拥有一个描述两个机场之间距离的边属性.
谢谢.