我的普遍问题是,在使用iGraph生成图形时,我丢失了顶点名称/标签(不确定这里用词是否正确)。
我有一个二分网络的边列表IC_edge_sub,看起来像下面这样:
new_individualID new_companyID
1 <NA> 10024354c
3 10069415i 2020225c
4 10069415i 16020347c
5 10069272i 2020225c
6 10069272i 16020347c
7 10069274i 2020225c
然后创建一个图形元素:
IC_projected_graphs <- bipartite.projection(IC_twomode, types =
is.bipartite(IC_twomode)$type)
然后将其折叠以仅标识companyID之间的连接
IC_projected_graphs <- bipartite.projection(IC_twomode, types =
is.bipartite(IC_twomode)$type)
然后得到邻接矩阵:
CC_matrix_IC_based <- get.adjacency(CC_graph_IC_based); CC_matrix_IC_based
在iGraph中,节点编号从零开始,因此矩阵命名也从零开始。然而,我现在需要在最终的CC_matrix_IC_based矩阵中的edgelist的第2列中指定的“new_companyID”。
你能帮助我如何使用原始边列表中的信息在最终邻接矩阵中放入行名和列名吗?
我在谷歌上搜索了一下栈流,但是没有找到一个有效的答案。非常感谢你的帮助
3条答案
按热度按时间kqlmhetl1#
顶点名称通常存储在igraph中名为
name
的顶点属性中。因此,如果您的图存储在变量g
中,则可以使用V(g)$name
检索所有顶点的名称。vddsk6oq2#
关键问题是我在生成图表时没有保存名称。之后我需要确保不丢失数据。以下是总体解决方案:
ocebsuys3#
顶点名称存储在 label 属性中。
如果 g 是图,则顶点名称可以由
V(g)$label
访问