3

我有一个列表,其中包含每一行的网络(sna.list.1)。对于每个网络,我需要提取一个仅包含女性的子图,以便计算仅限女性的网络的密度。我创建了一个循环函数来设置顶点属性

female=vector()
for (i in 1 : length (sna.list.1))
  set.vertex.attribute(sna.list.1[[i]],"Female",alter.list.1bis[[i][,"NIDemo1_c4"])

但是当我尝试使用 get.inducedSubgraph 创建子图时,我收到一条警告消息,上面写着“get.inducedSubgraph 中的非法顶点选择”。如果我只将它应用于一行/网络,则相同的公式有效。

subnetwork2=vector()
for (i in 1 : length (sna.list.1))
subnetwork2[[i]]=get.inducedSubgraph(sna.list.1[[i]],v=which(sna.list.1[[i]]%v%"Female"=="1"))

有人有建议吗?

4

1 回答 1

0

假设get.inducedSubgraph 隔离改变 是您的问题的延续,听起来您试图诱导大小为零的子图。即v=which(sna.list.1[[i]]%v%"Female"=="1")返回integer(0)某些网络。

理想情况下,由于network包支持大小为零的网络(无顶点)get.inducedSubgraph(),在这种情况下应该返回大小为零的网络,但它还没有这样做。

于 2015-09-08T19:13:10.117 回答