igraph中最具代表性的10个节点的子图
我有一个数据帧文件,如下图所示的属性,还有一个网络矩阵,如下图所示,我将属性正确地附加到数据。但是现在 1-我想要30位作者,他们在程度上最具代表性,我知道我应该使用子图,但我不确定我的代码是否正确 2-我想让引用最多的作者,因为我想把他们描绘出来 有人能帮我吗igraph中最具代表性的10个节点的子图,r,igraph,R,Igraph,我有一个数据帧文件,如下图所示的属性,还有一个网络矩阵,如下图所示,我将属性正确地附加到数据。但是现在 1-我想要30位作者,他们在程度上最具代表性,我知道我应该使用子图,但我不确定我的代码是否正确 2-我想让引用最多的作者,因为我想把他们描绘出来 有人能帮我吗 my attribute set Code Sector AUTHOR H.Index NumDocs References Citations <fct> <fct> <fct>
my attribute set
Code Sector AUTHOR H.Index NumDocs References Citations
<fct> <fct> <fct> <int> <int> <int> <int>
S0004 SECS-S/01 AGATI P 2 6 134 32
S0005 SECS-S/01 AGOSTINELLI C 5 11 127 39
S0008 SECS-S/01 ALFO M 8 24 688 151
S0025 SECS-S/01 AREZZO MF 1 NA NA 11
库(“igraphdata”)
图书馆(“igraph”)
图书馆(“网络”)
图书馆(“statnet”)
库(“间图”)
#想象一下我的igraph对象PRIN_graph
#对于最具代表性的作者:
DEG假设您的示例不可复制,则假设您有一个igraph
对象g
,具有顶点属性引文
(参见下面的数据)。此外,将选择前10个节点,而不是30个。你可以很容易地改变这一点
您只需将一个逻辑向量传递给included\u子图
命令,该命令用于对节点进行子集划分。通过组合秩
,您可以得到这样一个向量,这也有助于您处理秩中可能存在的联系,鉴于您的示例不可复制,假设您有一个igraph
对象g
,具有顶点属性引文
(请参见下面的数据)。此外,将选择前10个节点,而不是30个。你可以很容易地改变这一点
您只需将一个逻辑向量传递给included\u子图
命令,该命令用于对节点进行子集划分。您可以通过组合秩
,获得这样一个向量,这也有助于您处理秩中可能的关系,以及
my data
S0001 S0004 S0005 S0008 S0025 A0005 A0008 A0009
S0001 0 0 0 0 0 0 1 1
S0004 0 1 1 1 0 0 0 0
S0005 0 1 1 1 0 0 0 0
S0008 0 1 1 1 0 0 0 0
S0025 1 1 1 0 0 0 0 1
A0005 0 1 1 1 0 0 0 0
A0008 0 1 1 1 0 0 0 0
A0009 1 1 1 0 0 0 0 1
library("igraphdata")
library("igraph")
library("network")
library("statnet")
library("intergraph")
#Imagin my igraph object called PRIN_graph
#for the most represented authors:
DEG <-order(igraph::degree(PRIN_graph, mode = "all", normalized = T),decreasing = TRUE)
DEG[1:30]
HighDeg = induced_subgraph(PRIN_graph, DEG[1:30])
HighDeg
#how to get the vertex name for the most citations?
ci<- sort(unique(V(PRIN_graph)$Citations))
c<-sort(table(V(PRIN_graph)$Citations))
c
g.s <- induced_subgraph(g, rank(-V(g)$citations) < 11 )
get.vertex.attribute(g.s, "citations")
[1] 16 11 12 16 11 9 9 13 13 14 12
get.vertex.attribute(g.s, "label")
[1] "id1" "id4" "id6" "id7" "id10" "id12" "id13" "id15" "id17" "id19" "id20"
V(g)$degree <- degree(g)
g.s <- induced_subgraph(g, rank(-V(g)$degree) < 11 )
library(igraph)
set.seed(123)
n <- 20
p <- 0.5
g <- random.graph.game(n, p)
# att attributes
V(g)$label <- paste0("id",1:n)
V(g)$citations <- rpois(n, 10)
vertex.attributes(g)
$label
[1] "id1" "id2" "id3" "id4" "id5" "id6" "id7" "id8" "id9" "id10" "id11"
[12] "id12" "id13" "id14" "id15" "id16" "id17" "id18" "id19" "id20"
$citations
[1] 16 5 6 11 5 12 16 5 2 11 6 9 9 4 13 8 13 6 14 12