簡體   English   中英

使用線圖計算子圖的程度

[英]Calculate degree of a subgraph using r igraph

我知道全局圖的程度,但是現在我需要找到子圖中的節點的程度。 因此,約翰在學校有4個朋友,但在班上有3個朋友。 我該如何指示igraph數他班上的那三個朋友,而不是他學校里的其余三個朋友?

我的全球圖

library(igraph)
school <- read.table(text="
    A   B   C   D   E   F   G
A   0   1   0   1   0   1   1
B   1   0   1   1   0   1   0
C   0   0   0   0   0   0   1
D   1   1   0   0   1   0   0
E   0   0   0   1   0   1   1
F   0   1   0   0   1   0   1
G   1   0   1   0   1   1   0", header=TRUE)

mat <- as.matrix(school)
g <- graph.adjacency(mat, mode="undirected", add.rownames = T)

我對P,Q和R類的隸屬關系矩陣

x <- read.table(text="
                    P   Q   R
                A   1   1   0
                B   0   0   1
                C   0   0   0
                D   1   0   1
                E   1   1   0
                F   0   1   0
                G   1   1   1", header=TRUE)

inc <- as.matrix(x)
ginc <- graph.incidence(inc)

我的P類子圖

class_nodes <- names(which(inc[,"P"] == 1))
class_adj   <- mat[class_nodes, class_nodes]
class_graph <- graph.adjacency(class_adj, mode = "undirected")

我需要計算子圖“ class_graph”中的節點的程度,但只計算它們在子圖中的聯系,而不是全局圖。

您可以使用找到P類中的所有節點(我們專門提取了名稱,以便可以在其他圖形對象中查找它們)。

V(ginc)[.nei("P")]$name

然后您可以使用以下方法從主圖中提取連接的子集

subg <- induced.subgraph(g, V(ginc)[.nei("P")]$name)

您可以使用

degree(subg)
# A D E G 
# 2 2 2 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM