igraph中最具代表性的10个节点的子图

igraph中最具代表性的10个节点的子图,r,igraph,R,Igraph,我有一个数据帧文件,如下图所示的属性,还有一个网络矩阵,如下图所示,我将属性正确地附加到数据。但是现在 1-我想要30位作者,他们在程度上最具代表性,我知道我应该使用子图,但我不确定我的代码是否正确 2-我想让引用最多的作者,因为我想把他们描绘出来 有人能帮我吗 my attribute set Code Sector AUTHOR H.Index NumDocs References Citations <fct> <fct> <fct>

我有一个数据帧文件,如下图所示的属性,还有一个网络矩阵,如下图所示,我将属性正确地附加到数据。但是现在 1-我想要30位作者,他们在程度上最具代表性,我知道我应该使用子图,但我不确定我的代码是否正确

2-我想让引用最多的作者,因为我想把他们描绘出来

有人能帮我吗

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