Я сейчас работаю над анализом сетей в R. Я столкнулся с чем-то, что мне не кажется правильным. Сначала немного контекста:
Я создал сеть с пакетом igraph с 7231 наблюдением 4 переменных, используя следующий код:
MyNetwork <- data.frame(Katalog_G_2000_2018_VOLLEDIG$Zuwendungsempfänger, Katalog_G_2000_2018_VOLLEDIG$Ausführende.Stelle, Katalog_G_2000_2018_VOLLEDIG$typ, Katalog_G_2000_2018_VOLLEDIG$verbund)
Network <- graph.data.frame(MyNetwork, directed=F)
После этого я визуализировал сеть со следующим кодом:
plot(Network,vertex.size=6, edge.arrow.size=0.4, main= "ICT-Networks in Germany 2000-2018", vertex.label.cex = 0.8,vertex.label=NA,vertex.color = "green")
Теперь я хотел бы выяснить, сколько вершин без ребер в моей сети (т.е. доля изолятов). Для этого я попытался использовать этот код:
V(Network)[igraph::degree(Network, mode = "out")>0 & igraph::degree(Network, mode = "in") > 0]
length(V(Network)[igraph::degree(Network, mode = 'out')>0 & igraph::degree(Network, mode = 'in') > 0])
Вот здесь и возникает проблема. Запуск этого кода говорит мне, что вершины 4305/4305 имеют ребра, а визуализация моей сети ясно показывает, что есть вершины без ребер.
Может кто-нибудь сказать мне, как исправить этот код, чтобы узнать, какова доля изолятов в моей сети? Любые другие решения этой проблемы (например, с использованием других кодов) мы бы также высоко оценили. Если вам нужна дополнительная информация, чтобы ответить на мой вопрос, пожалуйста, дайте мне знать (к сожалению, на данный момент я не могу поделиться своими данными).
Заранее спасибо.