在igraph中获取边缘的目标或来源

kas*_*rma 4 r igraph

给定图fg,我的例子:

library("igraph")

fg <- feature.graph <- graph.empty()

fg <- fg + vertices("root", "ho", "ha", value=c(1,2,3)) +
  edges(c("root", "ho", "root", "ha"), label=c("en", "an"), prob=c(0.2,0.8))
Run Code Online (Sandbox Code Playgroud)

我提取了一个感兴趣的边缘:

> edge.of.interest <- E(fg)[from("root")][[1]]
> edge.of.interest
Edge sequence:
    e             
e [1] root -> ho  
Run Code Online (Sandbox Code Playgroud)

要获得此边缘的源或目标,我可以这样做:

> get.edge(fg, edge.of.interest)
[1] 1 2
> get.edge(fg, edge.of.interest)[1]
[1] 1
> get.edge(fg, edge.of.interest)[2]
[1] 2
Run Code Online (Sandbox Code Playgroud)

我原本期望一个具有这种效果的函数源和目标:

> target(edge.of.interest)
2
Run Code Online (Sandbox Code Playgroud)

我一直无法找到这个或等效的功能.通过get.edge的方法是最好的吗?

akh*_*med 11

我知道这是一个古老的问题,但看起来我从头顶回答.你的意思是tail_ofhead_of

> head_of(fg, edge.of.interest)$value
[1] 1

> tail_of(fg, edge.of.interest)$value
[1] 2
Run Code Online (Sandbox Code Playgroud)

此外,ends如果同时需要两端,则功能在此处可能是有用的.

  • 你知道python中igraph是否有等效的ends函数吗? (2认同)