如何使用R中的igraph计算只有入射和出射边的顶点?

时间:2018-04-24 13:57:03

标签: r matrix igraph

我试图根据R中使用igraph包制作的图表来计算那些仅包含传入或传出边的顶点。

这是我在R中使用igraph

的一段代码
library(igraph)
web <- read.csv(file = "myweb.csv", header = T) 
g=graph.data.frame(web) 

非常感谢任何有关如何做到这一点的建议。

1 个答案:

答案 0 :(得分:2)

您可以使用参数degree()mode = 'in'确定顶点与mode='out'函数有多少传入或传出边。下面是一些示例代码,用于计算数量(以及哪些)节点具有传入和传出边缘:

set.seed(123)
df <- data.frame(from = sample(1:20, 10), to = sample(1:20, 10))
library(igraph)
g <- graph.data.frame(df)
plot(g)

# Vertices with both incoming and outgoing links
V(g)[degree(g, mode = 'out')>0 & degree(g, mode = 'in') > 0]
#> + 3/17 vertices, named, from a36c786:
#> [1] 15 1  20
# number of vertices
length(V(g)[degree(g, mode = 'out')>0 & degree(g, mode = 'in') > 0])
#> [1] 3

# Number of vertices with outgoing links
length(V(g)[degree(g, mode = 'out')>0])
#> [1] 10

# Number of vertices with incoming links
length(V(g)[degree(g, mode = 'in')>0])
#> [1] 10