【发布时间】:2012-08-14 00:44:59
【问题描述】:
这个问题与 Igraph 中顶点的调用有关。
假设我们有一个有向图
g<-graph(c(1:10),directed=T)
我想找到指向顶点 2 的顶点。
假设您想找到指向“指向”顶点 1 的顶点。
为什么不能使用“to”条件
V(g)[to(1)]
而是这个?
V(g)[nei(1,"to")]
【问题讨论】:
这个问题与 Igraph 中顶点的调用有关。
假设我们有一个有向图
g<-graph(c(1:10),directed=T)
我想找到指向顶点 2 的顶点。
假设您想找到指向“指向”顶点 1 的顶点。
为什么不能使用“to”条件
V(g)[to(1)]
而是这个?
V(g)[nei(1,"to")]
【问题讨论】:
对我有用吗?
> g<-graph(c(1:10),directed=T)
> V(g)[to(1)]
Vertex sequence:
[1] 2
> V(g)[nei(1,"to")]
Vertex sequence:
[1] 2
我个人喜欢使用边缘列表。或者你可以这样做:
# Get edgelist:
E <- get.edgelist(g)
# To 1 in directed graph:
E[E[,2]==1,1]
# Connected to 1 in undirected graph:
c(E[E[,2]==1,1],E[E[,1]==1,2])
【讨论】:
to 仅适用于边序列;例如,E(g)[to(1)] 为您提供指向顶点 1 的所有边。恕我直言,这是非常合乎逻辑的,因为顶点不会“指向”任何地方(边缘会),因此使用 from 或 to 没有意义。
此外,使用nei 的“官方”方式是nei(1, "out"),而不是nei(1, "to"),尽管"to" 也可以使用。你也可以使用outnei(1)。
免责声明:我是 igraph 的作者之一,虽然我没有编写 R 接口,所以可能有比我上面解释的更好的理由。
【讨论】:
V(g)[outnei(1, mode="out")],但无效:V(g)[outnei(1)]。我将为此创建一个错误报告。