删除节点并计算图论指标,R

Delete node and calculate graph theory metrics, R

我有一个 132 x 132 矩阵。我想在每一步删除每一行和每一列,并计算中心性、传递性、模块化、程度。我可以删除每个节点并计算这些度量,如下所示。但是我想知道,如何删除每个节点并循环计算这些度量,这样我就不必手动输入每个节点并计算这些图论度量?

delete_vertices <- delete.vertices(network, c("node1") # delete one node at a time

centrality <- centr_betw(delete_vertices, directed = FALSE, nobigint = TRUE, normalized = TRUE)

谢谢

普里亚

是这样的吗?

library(igraph)

set.seed(1234)    # Make g reproducible

g <- sample_gnp(10, 3/10) %>%
  set_vertex_attr("name", value = LETTERS[1:10])

deg <- degree(g)
centrality <- vector("list", length(V(g)))
trans <- vector("list", length(V(g)))

for(i in seq_along(V(g))){
  delete_vertices <- delete.vertices(g, V(g)[i]) # delete one node at a time
  centrality[[i]] <- centr_betw(delete_vertices, directed = FALSE, nobigint = TRUE, normalized = TRUE)
  trans[[i]] <- transitivity(g, type = "local", vids = V(g)[i])
}

centr_graph <- sapply(centrality, '[[', "centralization")
centr_graph <- setNames(centr_graph, names(V(g)))
trans <- setNames(unlist(trans), names(V(g)))