使用igraph图,我有一个图g1节点的数据框,
DC1<-data.frame(
node=V(g1)$name,
Frequency=DC1$'DC')
DC2<-DC1[order(-DC1$'Frequency'),]
我使用循环,在每一步我都采用数据帧的第一个节点。对于这个节点,我计算它的邻居,然后从图形和数据框中删除它和它的邻居。
问题是在某个步骤我有这个消息`
Erreur dans as.igraph.vs(graph,v):无效的顶点名称.
当我试图知道原因时,我发现在这一步算法不能读取数据帧的第一行,所以我不能让邻居继续这个过程。
while(length(get.edgelist(g1))>0){
v<-DC2$node[(order(-DC2$'Frequency'))]
L<-V(g1)[V(g1)$name==v[1]]
Nei <- neighbors(g1,L,1)
}
问题在于:
> v<-DC2$node[(order(-DC2$'frequency')) ]
> L<-V(g1)[V(g1)$name==v[1]]
> L
Vertex sequence:
[1] "125"
> Nei <- neighbors(g1,L,1)
> Nei
numeric(0)
当我将L
替换为其值时,其工作原理为:
> Nei <- neighbors(g1,125,1)
> Nei
[1] 28 30 76 1883