如何使用statnet / igraph创建具有边缘和隔离的网络

时间:2018-01-25 11:52:08

标签: r network-programming igraph statnet

我的问题类似于此处发布的问题:Network adding edges error

我正在创建一个划痕的网络:我有13个时期内有228个顶点的数据。在第一年,我只有1781个边缘:它们不涉及我的所有顶点(仅164个),因此剩余的节点应该是孤立的。

我使用代码

从边缘列表开始创建网络
fdi.graph.2003 <- graph_from_data_frame(fdi.edge.2003, directed = T, vertices = fdi.attr.2003)

其中 fdi.edge.2003 是包含边缘属性的data.frame(包括一些潜在的权重列):它只涉及 fdi.attr定义的总顶点中的164个顶点.2003 是一个data.frame,包含一个边缘列表中涉及的每个顶点的行(总共164个)。

我得到的是一个有164个顶点且没有隔离的网络。但是,我知道它们确实存在于我的数据中!关于如何做的任何建议?我认为我应该用所有228个顶点初始化一个网络,添加它们的属性然后添加边缘。但是,我没有尝试任何工作:相反,我收到与“addEdges_R中的非法顶点引用”相关的最不同的错误。

任何建议都非常受欢迎,同样在涉及替代包igraph的情况下,我发现了同样的问题

菲利普

1 个答案:

答案 0 :(得分:0)

使用sna软件包中的add.isolates

net1 = as.network(cbind(1:3, 3:5)) #5 vertices, 3 edges
net2 = as.network(add.isolates(net1, 10), matrix.type = "edgelist") #15 v, 3 e

然后你可能想要创建新的顶点名称,例如

net2%v%"vertex.names" = 1:15