0

如何在网络类中为接受多个图形的 SNA 命令创建“图形堆栈”?根据文档,图形堆栈的尺寸应为 mx 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))

但是首先创建结构然后尝试将其转换为网络对象是行不通的。

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

4

1 回答 1

3

你想用“图形堆栈”来完成什么?'graph stack' 公式由包使用,sna但不是由network包使用。在网络包中,多个网络可以表示为 a listof networks,作为单个多路复用network对象中的多个连接类型,或者,如果您的多个网络表示及时对网络的连续观察,则可以networkDynamic使用包中的扩展来表示一个对象networkDynamic。最佳表示取决于您的用例。

如果您只想sna在一系列矩阵上运行度量,您似乎可以通过将它们放在一个列表中来构建一个图形堆栈,例如

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

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

> 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
于 2015-08-25T23:59:41.240 回答