我目前正在研究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顶点具有边,而我的网络的可视化清楚地表明存在没有边的顶点。
任何人都可以告诉我如何解决此代码,以找出隔离网络中共享隔离区的份额吗?对于这个问题的任何其他解决方案(例如使用不同的代码)我们也将不胜感激。如果您需要任何其他信息来回答我的问题,请让我知道(很遗憾,目前我无法共享我的数据集)。 预先感谢。
答案 0 :(得分:0)
如果所有主图都已连接,则可以用这种方法计算没有边的顶点。
library(igraph)
length(decompose.graph(Network,
mode = c("weak", "strong"),
max.comps = NA,
min.vertices = 0)
) - 1