我需要合并一个图的几个顶点.我使用了iggraph contract
函数,它工作得很好,但不允许我获取原始类型数据.此外,该函数不会移除塌陷的顶点(在示例中:4和8).
G <- graph.ring(10)
V(G)$character <- rep(c("attr1","attr2"),5)
V(G)$numeric <- rep(1:5,2)
V(G)$newId <- c(1,2,3,3,5,6,7,7,9,10)
G1 <- contract(G, V(G)$newId, vertex.attr.comb = toString)
par(mfrow=c(1,2))
plot(G)
plot(G1)
除了对收拢顶点的值进行分组外,结果仅生成字符格式值.我try 了vertex.attr.comb的不同选项.因为我有字符和数字数据,所以SUM选项不起作用,"First"或"Last"不会保留所有数据.其他选项,如列出所有属性都不起作用.
因此,我不知道如何 for each 顶点获得单个值,而不是两个或更多,也不知道如何处理获得的值.
此外,我还必须移除折叠的顶点.在我的情况下,我可以使用delete.vertices (G,V(KeyW)[degree(G)==0)
,但当它们打算与原始网络隔离时,这似乎不是理想的解决方案.
先谢谢你.