Как посчитать вершины только с входящими и исходящими ребрами с igraph в R? - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь посчитать эти вершины только с входящими или исходящими ребрами на основе графика, сделанного с пакетом igraph в R.

Это мой кусок кода на R, использующий igraph:

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

Любой совет о том, как это сделать, будет очень признателен.

1 Ответ

0 голосов
/ 24 апреля 2018

Вы можете определить, сколько входящих или исходящих ребер имеет вершина с помощью функции 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
...