"graph stack" 在网络中 class

"graph stack" in network class

如何在网络 class 中为接受多个图表的 SNA 命令创建 "graph stack"?根据 documentation,图形堆栈的维度应为 m x N x N。我尝试按如下方式创建一个,但出现错误:

library(network)
a <- array(NA,dim=c(2,10,10))
a[1,,]<- matrix(sample(c(0,1),100,replace=T),10,10)
a[2,,]<- matrix(sample(c(0,1),100,replace=T),10,10)
t <- network(a,matrix.type="adjacency")

使用 rgraph 函数创建随机图会创建具有类似结构的数组:

library(sna)
b <-rgraph(10,2,tprob=c(0.2,0.8))

但是先创建结构然后尝试将其变成网络对象是行不通的。

相关:有没有办法用不同大小的网络制作一个网络对象?该文档似乎还建议网络对象可以是其他网络对象的列表。

你想用 'graph stack' 完成什么? 'graph stack' 公式被 sna 使用,但不被 network 包使用。在网络包中,多个网络可以表示为 networklist,表示为单个多重 network 对象中的多个连接类型,或者,如果您的多个网络表示对及时网络,一个使用 networkDynamic 包扩展的 networkDynamic 对象。最佳表示取决于您的用例。

如果您只想 运行 sna 对一系列矩阵进行测量,看来您可以通过将它们放在列表中来构建图形堆栈,例如

graphs<-list(rgraph(10,2,tprob=c(0.2,0.8)),rgraph(5,2,tprob=c(0.2,0.8)))

然后您可以通过包含 g 参数来调用 sna 度量,告诉它对列表中的多个图进行评估

> degree(graphs,g=1:2)
[[1]]
      [,1]
 [1,]    1
 [2,]    4
 [3,]    3
 [4,]    5
 [5,]    3
 [6,]    3
 [7,]    3
 [8,]    5
 [9,]    5
[10,]    6

[[2]]
     [,1]
[1,]    1
[2,]    2
[3,]    1
[4,]    2
[5,]    0